我正在关注与 Facebook SDK 3.5 捆绑的 HelloFacebookSample 项目。我实际上已将所有内容复制并粘贴到我自己的应用程序中,甚至是来自 AppDelegate 的内容,但由于某种原因,单击登录按钮会冻结我的应用程序。只是为了记录,当连接到 iOS 6 中的集成框架时,一切都正确验证,无论如何都是通过 FB SDK 完成的。只有当我尝试使用网络登录时,即点击 FBLoginView 网站打开,获得身份验证,返回应用程序。这是samepl项目中的代码,我将它与我的进行比较:
FBLoginView *loginview = [[FBLoginView alloc] init];
loginview.frame = CGRectOffset(loginview.frame, 5, 5);
loginview.delegate = self;
[self.view addSubview:loginview];
[loginview sizeToFit];
我的有点不同:
loginview = [[FBLoginView alloc] init];
loginview.delegate = self;
[self.facebookCell addSubview:loginview];
[loginview sizeToFit];
至于委托方法,我已经一字不差地实现了它们。为什么应用程序崩溃?当我的应用程序和示例应用程序之间的所有代码几乎相同时,没有正当的崩溃理由。即使启用了 Zombie Objects,调试器也无济于事。实际的错误是:Thread 1: EXC_BAD_ACCESS (code=2, address=somethingoranother)
有人知道为什么会这样吗?
问候,
迈克
更新:似乎发生崩溃是因为某些事情在循环中无限重复。FB SDK 似乎将超过 100,000 个进程放在主线程上!如何?!
更新 2:我开始认为错误就在这里,即使我直接从示例 AppDelegate 复制了它。
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];
}
这有帮助吗?