这个问题的原因是 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))
}
希望这可以帮助任何偶然发现与我相同的问题的人。