ユーザーが私のアプリに自分の Twitter アカウントへのアクセスを許可した後でも、設定アプリに移動して、スイッチを押すことでアクセスを取り消すことができます。
これが発生した場合、私のアプリは正しいログアウト グラフィックを表示する必要があります。アプリのアクセスが取り消されたときに戻るため、iOS 5では問題なく実行できます。ただし、iOS 6では、アクセスが取り消された後も引き続き返されます。そのため、iOS 6 では UI が間違った状態になっています。iOS 6 でこれを正しく検出する他の方法はありますか? [TWTweetComposeViewController canSendTweet]
NO
canSendTweet
YES
- (id) init
{
if (self = [super init]) {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(accountStatusDidChange:)
name:ACAccountStoreDidChangeNotification object:nil];
}
return self;
}
- (void) accountStatusDidChange:(NSNotification *)notification
{
if ([TWTweetComposeViewController canSendTweet]) {
NSLog(@"app can still access Twitter account in iOS 5");
NSLog(@"always hits this path in iOS 6");
} else {
NSLog(@"app permission removed by user in iOS 5");
}
}
ところで、canSendTweetのドキュメントは間違っています。スイッチをオフにすると、Twitter にアクセスできなくなります。
Twitter リクエストを送信できるかどうかを返します。
Twitterにアクセスでき、少なくとも 1 つのアカウントが設定されている場合は YES。そうでなければいいえ。可用性
Available in iOS 5.0 and later.
TWTweetComposeViewController.h で宣言