0

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

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

上面的函数是从应用程序委托的“applicationDidBecomeActive”函数中调用的。

这在 iOS 6 中运行良好。但在 iOS 5 中,它会像往常一样显示警报,询问是否有权访问该帐户。当我按“确定”或“不允许”时,再次调用 applicationDidBecomeActive 函数。所以它就像一个循环,警报不断出现。

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

4

2 回答 2

1

尝试在主线程上调度完成处理程序。我在 iOS5 上遇到了一个“问题”,我想在登录 TW 帐户后显示警报视图。在 iOS6 上一切都很好,但在 iOS5 上,它似乎在 5 秒后显示警报视图。我已经修复了在主线程上调度警报。
如果在完成处理程序中您有一些 UI 功能,请在主线程上调度它们,因为大多数 UIKit 不是线程安全的。
再见

于 2013-07-29T05:45:34.140 回答
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
             }
         });
     }];
于 2013-07-29T05:19:52.000 回答