iOS/FBSDK - FBSDKProfile 在设备上为零,在模拟器上工作正常
Posted
技术标签:
【中文标题】iOS/FBSDK - FBSDKProfile 在设备上为零,在模拟器上工作正常【英文标题】:iOS/FBSDK - FBSDKProfile is nil on device, works fine on simulator 【发布时间】:2015-10-27 12:12:32 【问题描述】:根据标题,在我的设备上测试时,我得到 nil Optional unwrapping 错误,但不是模拟器 - 我发现这是因为调用 FBSDKProfile.currentProfile.name
或类似的。我记得这让我在模拟器中开发时感到很痛苦,我通过在用户登录时添加FBSDKProfile.enableUpdatesOnAccessTokenChange(true)
来修复它,如果他们已经登录,则在应用加载时添加。
任何人有此问题的经验或对解决方案有任何想法?如果有人认为有帮助,很乐意发布代码。
谢谢!
【问题讨论】:
你的模拟器有fcebook账号吗? 【参考方案1】:这个问题的原因是 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 在设备上为零,在模拟器上工作正常的主要内容,如果未能解决你的问题,请参考以下文章
ios9: FBSDK currentAccessToken nil
适用于 iOS 的 Facebook SDK v4.0 - 未设置 FBSDKProfile currentProfile
iOS FBSDK FBSDKProfileExpressionSharer 在最后一步失败
iOS FBSDK v4 loginbuttondidlogout 无法识别的选择器
使用 iOS FBSDK v4 (multipart/form-data) 上传到 facebook 时编码视频的正确方法