按照标题,在我的设备(而非模拟器)上进行测试时,我收到nil可选的解包错误-我发现导致此问题的原因是调用FBSDKProfile.currentProfile.name
或类似方法。我记得这使我在模拟器中开发时感到痛苦,并且通过在用户登录时(如果他们已经登录)和应用程序加载时添加了FBSDKProfile.enableUpdatesOnAccessTokenChange(true)
来修复它。
是否有人对此问题有经验或对解决方案有任何想法?如果有人认为有帮助,很乐意发布代码。
谢谢!
最佳答案
出现此问题的原因是FBSDKProfile需要花费几秒钟来加载,而我没有给它时间,因此尝试使用nil值。
因此,解决方案是拥有占位符值,并监听FBSDK Notification FBSDKProfileDidChangeNotification
,并在完成后更新这些值。
这是代码:
在viewDidLoad
方法中:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("onFBProfileUpdated:"), name: FBSDKProfileDidChangeNotification, object: nil)
还有一个单独的方法:
func onFBProfileUpdated(notification: NSNotification) {
nameLabel.text = FBSDKProfile.currentProfile().name
setImage(FBSDKProfile.currentProfile().imageURLForPictureMode(FBSDKProfilePictureMode.Square, size: image.frame.size))
}
希望这对遇到我同样问题的人有所帮助。
关于ios - iOS/FBSDK-FBSDKProfile在设备上为零,在模拟器上可以正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33367710/