访问Twitter帐户时,应用程序在ios5中挂起

时间:2013-07-29 05:12:23

标签: ios

我正在开发一个访问Twitter帐户的应用程序。我正在使用以下功能

访问twitter
[self.accountStore requestAccessToAccountsWithType:accountTypeTwitter
                             withCompletionHandler:^(BOOL granted, NSError *error) {

上面的函数是从app delegate的“applicationDidBecomeActive”函数调用的。

这在iOS 6中运行良好。但在iOS 5中,它会像往常一样显示警告,要求访问该帐户的权限。当我按“确定”或“不允许”时,再次调用applicationDidBecomeActive函数。所以它就像一个循环,警报一直在继续。

除了从applicationDidBecomeActive调用它之外我做错了吗?

2 个答案:

答案 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
             }
         });
     }];