2

ユーザーが私のアプリに自分の Twitter アカウントへのアクセスを許可した後でも、設定アプリに移動して、スイッチを押すことでアクセスを取り消すことができます。

ツイッター設定アプリ

これが発生した場合、私のアプリは正しいログアウト グラフィックを表示する必要があります。アプリのアクセスが取り消されたときに戻るため、iOS 5では問題なく実行できます。ただし、iOS 6では、アクセスが取り消された後も引き続き返されます。そのため、iOS 6 では UI が間違った状態になっています。iOS 6 でこれを正しく検出する他の方法はありますか? [TWTweetComposeViewController canSendTweet]NOcanSendTweetYES

- (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 で宣言

4

3 に答える 3