我正在开发一个访问Twitter帐户的应用程序。我正在使用以下功能
访问twitter[self.accountStore requestAccessToAccountsWithType:accountTypeTwitter
withCompletionHandler:^(BOOL granted, NSError *error) {
上面的函数是从app delegate的“applicationDidBecomeActive”函数调用的。
这在iOS 6中运行良好。但在iOS 5中,它会像往常一样显示警告,要求访问该帐户的权限。当我按“确定”或“不允许”时,再次调用applicationDidBecomeActive函数。所以它就像一个循环,警报一直在继续。
除了从applicationDidBecomeActive调用它之外我做错了吗?
答案 0 :(得分:1)
尝试在主线程上调度完成处理程序。我在iOS5上遇到“问题”,我想在登录TW帐户后显示警报视图。在iOS6上一切都很好,但在iOS5上它似乎在5秒后显示警报视图。我已经修复了在主线程上发送警报的问题
如果在完成处理程序中你有一些UI功能,请在主线程上调度它们,因为大多数UIKit不是线程安全的。
Ciao
答案 1 :(得分:0)
requestAccessToAccountsWithType:options:completion:
方法仅适用于iOS6及更高版本。
对于iOS5使用:
requestAccessToAccountsWithType:withCompletionHandler:
修改:: 强>
[account requestAccessToAccountsWithType:accountType
withCompletionHandler:^(BOOL granted, NSError *error)
{
dispatch_async(dispatch_get_main_queue(), ^{
if (granted)
{
//MY CODE
}
else{
// do whatever you want to do when user dont allow the access to the app
}
});
}];