Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 调用[PFFacebookUtils initializeFacebook]-信号量\u等待\u陷阱时解析崩溃_Ios_Objective C_Parse Platform_Semaphore_Pfuser - Fatal编程技术网

Ios 调用[PFFacebookUtils initializeFacebook]-信号量\u等待\u陷阱时解析崩溃

Ios 调用[PFFacebookUtils initializeFacebook]-信号量\u等待\u陷阱时解析崩溃,ios,objective-c,parse-platform,semaphore,pfuser,Ios,Objective C,Parse Platform,Semaphore,Pfuser,由于最新的Parse版本(v1.6.3),我的应用程序在启动时被卡住,它遇到的最后一个断点是[PFFacebookUtils initializeefacebook]如果我点击pause并查看调试器,堆栈跟踪如下所示: 我正在-(BOOL)应用程序:(UIApplication*)中调用[PFFacebookUtils initializeFacebook],应用程序按建议使用选项:(NSDictionary*)启动选项完成启动 通过谷歌搜索信号量等待陷阱问题,它似乎与核心数据中的冲突后台线程

由于最新的Parse版本(v1.6.3),我的应用程序在启动时被卡住,它遇到的最后一个断点是
[PFFacebookUtils initializeefacebook]如果我点击pause并查看调试器,堆栈跟踪如下所示:

我正在-
(BOOL)应用程序:(UIApplication*)中调用
[PFFacebookUtils initializeFacebook]
,应用程序按建议使用选项:(NSDictionary*)启动选项完成启动

通过谷歌搜索信号量等待陷阱问题,它似乎与核心数据中的冲突后台线程(?)有关。但是我试着注释掉我所有的背景解析查询,结果还是出现了

我尝试更新pod(顺便提一下,这发生在更新之前)。我也可以从一个干净的安装中运行这个应用程序,直到我登录到Facebook,在这一点上,每次我尝试启动时都会发生崩溃。当被查询时,PFUser似乎返回fine。我也清理了我的整个数据库,但这并没有什么不同


有人知道会发生什么吗

我看到了同样的问题,发现更改此初始化序列的顺序(我使用的是swift)使我克服了它(特别是注释掉本地数据存储也会取消阻止它):

这会在信号灯\u等待\u陷阱中被捕获:

// Parse integration initialization
Parse.enableLocalDatastore()
Parse.setApplicationId("<my app id>", clientKey: "<my client key>")
PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
PFFacebookUtils.initializeFacebook()
//解析集成初始化
Parse.enableLocalDatastore()
Parse.setApplicationId(“,clientKey:”)
PFAnalytics.trackAppOpenedWithLaunchOptions(启动选项)
PFFacebookUtils.initializeFacebook()
这并不是:

// Parse integration initialization
Parse.enableLocalDatastore()
Parse.setApplicationId("<my app id>", clientKey: "<my client key>")
PFFacebookUtils.initializeFacebook()
PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
//解析集成初始化
Parse.enableLocalDatastore()
Parse.setApplicationId(“,clientKey:”)
PFFacebookUtils.initializeFacebook()
PFAnalytics.trackAppOpenedWithLaunchOptions(启动选项)

不确定潜在问题,但希望能有所帮助

似乎已被parse 1.7.2修复

根据v1.7.2-2015年4月27日

新增:扩展和WatchKit的本地数据共享。 改进了ParseFacebookUtils的可空性注释。
修复:在主线程上未调用带有块回调的logOutInBackground。 修复:使用导入进行PFSubclassing.h的潜在编译错误。
修复:如果通过SaveFinally保存自动用户,则不是持久的currentUser。
修复了使用ParseFacebookUtils和currentUser的罕见死锁情况。
修复:将一行中的多个对象固定到同一个pin的罕见问题。
修复:用户无法与Facebook链接的罕见情况。
改进了本地数据存储的性能和可靠性。 性能改进。
其他小错误修复


这似乎奏效了。。。不知道为什么,但至少现在它又起作用了。有点担心api的改变会破坏实时应用程序,不过……嗯,它又开始发生了——断断续续地,在运行我的应用程序几次之后。如果我清理构建并删除应用程序,工作正常,但在运行几次后再次开始。尝试了洗牌方法调用,但似乎没有什么不同。。。如果我注释掉启用本地数据存储,事情就会运行,但是我当然无法访问本地数据存储。更新了POD,但仍然存在。这可能是Parse的后端更改吗?您是否已更新到facebook SDK 4.0.1和最新的Parse LIB?今天早些时候,我将init调用更改为PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(启动选项)。另外,如果您使用cocoapods,请注意您需要ParseFacebookUtilsV4…我已经尝试了以上所有方法,是的。这是一个有趣的问题,因为它不会立即发生,通常只有在运行了几次之后……在Obj中看到同样的情况,这只是在facebook上作为一个bug提交的。太好了,希望这能奏效!如果你把答案贴在这里,我可以把它标记为已接受,因为上面的问题略有不同:@Smikey听起来不错。我想你会逼我超过1000次。