当用户升级到 iOS 7 时,他们必须重新授权他们的 Twitter 帐户。目前,我遇到了一个问题,这似乎是由于用户拥有多个帐户,其中一个或多个帐户未经过验证。
当一个用户有多个账户,并且其中一个需要授权时,运行这个方法会给出一个完成处理程序为 YES,和一个 nil 错误:
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
}];
继续往下,该应用程序将无法从该帐户访问 Twitter,并导致崩溃。
阅读文档显示 ACAccount有一个credential
属性,但是this property is inaccessible after the account is saved
, 所以不能用作指标。
ACAccountStore 确实有另一种方法:
- (void)renewCredentialsForAccount:(ACAccount *)account completion:(ACAccountStoreCredentialRenewalHandler)completionHandler
但这会迫使用户在调用时更新他们的凭据,如果他们已经拥有,那就不理想了。
我如何才能真正确定帐户是否需要更新其凭据,或者是否可以访问?