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

当访问twitter帐户时,应用程序挂起在ios5中,ios,Ios,我正在开发一个可以访问twitter帐户的应用程序。我正在使用以下功能访问twitter [self.accountStore requestAccessToAccountsWithType:accountTypeTwitter withCompletionHandler:^(BOOL granted, NSError *error) { 上述函数是从应用程序委托的“ApplicationIDBecMeactive”函数调用的 这在iO

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

[self.accountStore requestAccessToAccountsWithType:accountTypeTwitter
                             withCompletionHandler:^(BOOL granted, NSError *error) {
上述函数是从应用程序委托的“ApplicationIDBecMeactive”函数调用的

这在iOS 6中运行良好。但在iOS 5中,它会像往常一样发出警报,请求访问该帐户的权限。当我按“确定”或“不允许”时,将再次调用ApplicationIDBecomeActive函数。因此,它就像一个循环,不断发出警报

除了从ApplicationIDBecomeActive调用它之外,我是否做错了什么

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

尝试在主线程上分派完成处理程序。我在iOS5上遇到了一个“问题”,我想在登录TW帐户后显示一个警报视图。在iOS6上一切正常,但在iOS5上,它似乎在5秒后显示警报视图。我已修复在主线程上发送警报的问题。

如果在完成处理程序中有一些UI功能,请在主线程上分派它们,因为大多数用户的UIKit不是线程安全的。
Ciao

看起来像ios6保存用户权限,并且不再询问用户。但在ios 5中,仅在ios 5中使用requestAccessToAccountsWithType:withCompletionHandler:来保存用户权限。点击ok可以正常工作。但是如果我点击“不允许”,下次调用函数时会再次发出警报。但是在iOS 6中。它只是在没有任何用户警报的情况下失败。有线索吗?是的,我也这么做。我的问题是,当我调用函数时,弹出窗口“app will to access your twitter account”(应用程序想访问你的twitter帐户)会立即显示。只有当我说“不允许”(在iOS 5中)时才会出现这种情况。当你说“不允许”时,授予的变量将是“否”。当用户不允许访问帐户时,使用else块执行任何你想执行的操作。明白吗。但我的问题是,在用户拒绝访问后(在应用程序启动时),一次又一次地显示弹出窗口。iOS 6不会在我说“不允许”后再次请求用户权限。好的。现在我明白了。在iOS5中,它可能无法保存权限。不过,我在文档中找不到这一点。您可以随时手动保存它。在else块中,[[NSUserDefaults standardUserDefaults]setBool:YES forKey:@“logged_In”];然后在函数的开头:if(![[NSUserDefaults standardUserDefaults]boolforky:@“logged_in”]){//call function}