我使用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]中设置一个符号断点来调试它。
答案 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断点,以便您可以看到警告的位置真的来自。