0

ユーザーが iOS 7 にアップグレードしたとき、Twitter アカウントを再認証する必要がありました。現在、ユーザーが複数のアカウントを持っていて、そのうちの 1 つまたは複数が検証されていない場合に発生すると思われる問題があります。

ユーザーが複数のアカウントを持っていて、そのうちの 1 つに承認が必要な場合、このメソッドを実行すると、YES の完了ハンドラーと nil エラーが返されます。

ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
}];

さらに続けると、アプリはそのアカウントから Twitter にアクセスできなくなり、クラッシュが発生します。

ドキュメントを読むと、 ACAccountcredentialプロパティがあることが示されていますが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 に答える