Twitter警告日志" TwitterKit只能在主线程中使用" Fabric SDK?

时间:2015-08-21 06:25:55

标签: ios iphone twitter twitter-fabric

我使用Fabric SDK集成twitter。我成功地将它集成到我的应用程序中也登录并从twitter获取令牌,用户名。但是在我的应用程序中,在检查Twitter会话以进行登录时会显示一个警告

   if (Twitter.sharedInstance().session() == nil)
   {
       twitterToken = ""
       twitterSecret = ""
   }
   else
   {
       twitterToken = Twitter.sharedInstance().session().authToken
       twitterSecret = Twitter.sharedInstance().session().authTokenSecret     
   }

控制台上的警告日志显示:

  

TwitterKit只能在主线程中使用。从后台线程使用将导致意外的行为和崩溃。在+ [TWTRMultiThreadUtil warnForBackgroundThreadUsage]中设置一个符号断点来调试它。

1 个答案:

答案 0 :(得分:2)

为什么不将这些行包装在主线程中调用的代码中?

E.G:

dispatch_async(dispatch_get_main_queue(),{
    if (Twitter.sharedInstance().session() == nil)
    {
          twitterToken = ""
          twitterSecret = ""
    }
    else
     {
          twitterToken = Twitter.sharedInstance().session().authToken
          twitterSecret = Twitter.sharedInstance().session().authTokenSecret     
     }
     ...
     ...
})

其中twitterToken和twitterSecret要么在主线程上使用/引用,要么将它们设置为对象的可选属性。

如果警告没有消失,请执行警告说明并在" +[TWTRMultiThreadUtil warnForBackgroundThreadUsage]"上设置Xcode断点,以便您可以看到警告的位置真的来自。