0

当用户升级到 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

但这会迫使用户在调用时更新他们的凭据,如果他们已经拥有,那就不理想了。

我如何才能真正确定帐户是否需要更新其凭据,或者是否可以访问?

4

1 回答 1

2

如果用户帐户不同步,您应该更新它。如果用户更改了密码或帐户会话已过期,则可能会发生这种情况。

您可以知道使用以下通知: ACAccountStoreDidChangeNotification

于 2013-12-16T09:18:25.170 回答