根据标题,我在我的设备上测试时得到nil可选的解包错误,而不是模拟器 - 我发现这是对FBSDKProfile.currentProfile.name
或类似的调用的原因。我记得这在我在模拟器中进行开发时会让我感到痛苦,我在用户登录时通过添加FBSDKProfile.enableUpdatesOnAccessTokenChange(true)
来修复它,如果他们已经登录,则会在应用程序加载时修复它。
任何人都有此问题的经验或对解决方案有任何想法?很高兴发布代码,如果有人认为它会有所帮助。
谢谢!
答案 0 :(得分:0)
出现此问题的原因是FBSDKProfile需要几秒钟才能加载,我没有给它时间,因此尝试使用零值。
因此,解决方案是拥有占位符值,并监听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))
}
希望这可以帮助任何偶然遇到同样问题的人。