根据标题,在我的设备上测试时,我收到 nil 可选展开错误,但在模拟器上却没有 - 我发现此问题的原因是调用 FBSDKProfile.currentProfile.name
或类似的。我记得这给我在模拟器中开发时带来了痛苦,我通过在用户登录时添加 FBSDKProfile.enableUpdatesOnAccessTokenChange(true)
来修复它,如果他们已经登录,则在应用程序加载时添加。
有人有解决此问题的经验或有任何解决方案吗?如果有人认为有帮助,很乐意发布代码。
谢谢!
最佳答案
这个问题的原因是 FBSDKProfile 需要几秒钟的时间来加载,而我没有给它时间,因此尝试使用 nil 值。
因此,解决方案是使用占位符值,并监听 FBSDK 通知 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/FBSDK - FBSDKProfile 在设备上为零,在模拟器上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367710/