facebook ios sdk日志:奇怪的消息

我有一个button来分享一个图像,每次我点击它,我有这个消息在日志中,我不明白:

2012-08-12 19:21:30.511 AvisOcean [2239:707]类FBSessionManualTokenCachingStrategy的实例0xe6b8fe0被释放,而键值观察者仍然在其中注册。 观测信息被泄露,甚至可能被误认为是其他物体。 在NSKVODeallocateBreak上设置断点,在debugging器中停止。 以下是当前的观察信息:(上下文:0xa5e90,属性:0x245310>上下文:0xa5e90,属性:0x28c400>)

有任何想法吗?

我遇到了同样的问题。 我认为发生了什么是我已经初始化Facebook其他地方,当我试图重新初始化它,并再次调用一个不同的实例的对话框委托给我错误。

我正在保持实际的应用程序初始化和accesstoken的实例不同于调用对话框的实例。 当我在更正文档后纠正了这个问题,就解决了。

if (nil == self.facebook) { self.facebook = [[Facebook alloc] initWithAppId:FBSession.activeSession.appID andDelegate:nil]; // Store the Facebook session information self.facebook.accessToken = FBSession.activeSession.accessToken; self.facebook.expirationDate = FBSession.activeSession.expirationDate; } [self.facebook dialog:@"feed" andParams:params andDelegate:self]; 

Facebook SDK正在泄漏观察员。 我正在使用SDK v3.1。

这不应该是一个问题,如果您使用没有不赞成使用的标题(即Facebook.h)的SDK。 但是要使用本地对话框,您需要包含不赞成使用的标题(source: https : //developers.facebook.com/docs/howtos/feed-dialog-using-ios-sdk/ ),这会导致在closures/清理活动会话。

这是一个拉动请求来解决它: https : //github.com/facebook/facebook-ios-sdk/pull/474

然后,您可以使用Facebook SDK for iOS6 / Xcode 4.5无法正常工作来重buildSDK

在分配accessToken和expirationDate之前快速注销,这将有助于清除您所看到的一些令人讨厌的错误。 我敢肯定,这只是一个临时的解决scheme,为那些使用不推荐的Facebook标头。

 // Initiate a Facebook instance if(!_facebook) _facebook = [[Facebook alloc] initWithAppId:FBSession.activeSession.appID andDelegate:nil]; // Store the Facebook session information [_facebook logout]; _facebook.accessToken = FBSession.activeSession.accessToken; _facebook.expirationDate = FBSession.activeSession.expirationDate; 

当我的Facebook对象被释放时,我看到这个消息。 我正在使用3.0.8 SDK。 在我的情况下,我认为Facebook对象应该删除自己作为其tokenCaching的观察员之前释放它在dealloc。 你的情况可能会有所不同,因为它听起来不像是要清理FB对象。 也许这里的build议会有所帮助。