1

我已经在我的应用程序中完成了 google+ 集成,它运行良好。但我注意到在注销期间偶尔会收到 EXC_BAD_ACCESS 错误。这是我的注销功能

-(void) logout
{
     [[GPPSignIn sharedInstance]signOut];
     [[GPPSignIn sharedInstance] disconnect]; // EXC_BAD_ACCESS Error occurs in this line
} 

我并不总是得到这个错误,我认为它可能必须做一些与会话相关的事情。我已经尝试搜索它,但到目前为止还没有找到任何解决方案。这个错误很少发生,我不知道这到底是什么时候发生的。当我在出现此错误后运行该应用程序时,它可以正常工作并且没有问题。但它仍然是一个错误,我想知道是否有其他人有同样的经历并找到任何解决方法。

4

1 回答 1

2

问题似乎是由于同时调用了signOutdisconnect方法。disconnect 方法还执行注销。文档说“需要令牌才能断开连接,因此如果要调用断开连接,请不要调用signOut。”

如果您只想注销用户,只需调用“signOut”方法,例如:

- (void)signOut
   { 
     [[GPPSignIn sharedInstance] signOut];
 }

如果您想断开用户连接(代表用户撤销您应用的 API 访问权限),该方法还会执行注销:

 - (void)disconnect
   {
      [[GPPSignIn sharedInstance] disconnect];
   }

您还应该实施didDisconnectWithError:(NSError *)error清理用户详细信息的方法,并遵循Google+ 关于断开连接的政策

阅读官方 Google+ iOS 文档了解更多信息。

于 2013-10-28T05:04:14.690 回答