繁体   English   中英

facebook ios sdk日志:奇怪的消息

[英]facebook ios sdk log : strange message

我有一个共享图像的按钮,每次点击它,我在日志中都有这条消息,我不明白:

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

有任何想法吗?

Facebook SDK正在泄露观察者。 我正在使用SDK v3.1。

如果您使用没有弃用标头的SDK(即Facebook.h),这应该不是问题。 但是要使用本机对话框,您需要包含已弃用的标题(来源: https//developers.facebook.com/docs/howtos/feed-dialog-using-ios-sdk/ ),这会在关闭/清除时导致此错误活跃的会议。

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

然后,您可以使用适用于iOS6 / Xcode 4.5的Facebook SDK重建SDK

我遇到了同样的问题。 我认为发生的事情是我初始化了Facebook其他地方,当我尝试重新初始化它并再次从另一个实例调用对话委托时,它给了我错误。

我保持实际应用初始化和accessstoken的实例与调用对话框的实例不同。 当我在翻阅文档后纠正这个问题后,它就解决了。

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];

在分配accessToken和expirationDate之前快速注销,这将有助于清除您看到的一些令人讨厌的错误。 我确信这只是那些使用已弃用的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对象。 也许这里的建议会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM