ACAccountStore的问题requestAccessToAccountsWithType未调用完成块

时间:2013-04-10 00:34:55

标签: ios objective-c social-framework acaccountstore

我一直遇到这个问题而且找不到任何东西。我正在使用社交框架来构建一个基本的Twitter应用程序(我自己的学习项目),并且直到最近帐户存储停止完成我的帐户访问请求时才遇到任何重大障碍。从我阅读和收集的所有样本中,当应用程序启动时,我请求访问帐户,然后一旦被授予就可以从那里开始。

我必须获取帐户的代码是:

ACAccountType* accountType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
NSLog(@"Making this call to getTwitterAccount");
[self.accountStore
 requestAccessToAccountsWithType:accountType
 options:nil
 completion:^(BOOL granted, NSError* error) {
    NSLog(@"Testing, this should show up");
    if (granted) {
        NSArray* accounts = [self.accountStore accountsWithAccountType:accountType];
        [self getAccountFromArray:accounts];
    }
    else {
        if (error.code == 6)
            NSLog(@"No twitter account");
        else
            NSLog(@"Access denied");
    }
}];

两个NSLog语句用于调试目的。我从viewDidLoad调用包含此代码的函数,getAccountFromArray:(NSArray*)函数只是确定用户希望将哪个帐户用于应用程序(如果需要,提供模态视图)。我的问题是除非我在模拟器中对帐户进行更改,否则永远不会调用完成块。在更改帐户后,代码会立即执行并显示模式(现在只显示一条消息),但对于任何其他执行,此块永远不会被触发,控制台中唯一的打印是"Making this call to getTwitterAccount"。以前,这适用于获取单个帐户,我能够让时间线获取工作和打印但是由于某种原因它停止了触发,我无法取得成功SLRequest或做任何其他自那以后基于它的行动。

我用谷歌搜索并发现在那里使用这个功能的问题,但这些问题都没有与完成块永远不会发射。

修改

好的,所以更新,一直在努力,并且出于某种原因将调用移动到将帐户检查到视图initWithNibName:bundle:方法的函数似乎工作,它可靠地执行(虽然在应用程序加载后有点) 。该函数被调用两次但只执行一次完成,并且仅在我从init调用它时 - 可能是这个原因?

0 个答案:

没有答案