我正在使用fabric SDK集成twitter。我成功地将它集成到我的应用程序中,还登录并从 Twitter 获取 token 、用户名。但在我的应用程序中,在检查 Twitter session 登录情况时会显示一个警告。
if (Twitter.sharedInstance().session() == nil)
{
twitterToken = ""
twitterSecret = ""
}
else
{
twitterToken = Twitter.sharedInstance().session().authToken
twitterSecret = Twitter.sharedInstance().session().authTokenSecret
}
控制台上的警告日志显示:
TwitterKit must be used only from the main thread. Use from background threads will lead to unexpected behavior and crashes. Set a symbolic breakpoint in +[TWTRMultiThreadUtil warnForBackgroundThreadUsage] to debug this.
最佳答案
为什么不将这些行包装在主线程上调用的代码中?
例如:
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 断点,这样您就可以看到警告的真正位置 来自。
关于ios - Twitter 警告日志 "TwitterKit must be used only from the main thread"Fabric SDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133704/