0

Twitterアカウントにアクセスするアプリを開発中です。次の関数を使用してTwitterにアクセスしています

[self.accountStore requestAccessToAccountsWithType:accountTypeTwitter
                             withCompletionHandler:^(BOOL granted, NSError *error) {

上記の関数は、アプリ デリゲートの「applicationDidBecomeActive」関数から呼び出されます。

これは iOS 6 では問題なく動作します。ただし、iOS 5 では、通常どおり、アカウントへのアクセス許可を求めるアラートが表示されます。「OK」または「許可しない」を押すと、applicationDidBecomeActive 関数が再度呼び出されます。そのため、ループのように機能し、アラートが発生し続けます。

applicationDidBecomeActive から呼び出す以外に何か間違ったことをしていますか?

4

2 に答える 2

1

メインスレッドで完了ハンドラーをディスパッチしてみてください。iOS5 で、TW アカウントにログインした後にアラート ビューを表示したいという「問題」が発生しました。iOS6 ではすべて問題ありませんでしたが、iOS5 では 5 秒後にアラート ビューが表示されたようです。メインスレッドでのアラートのディスパッチを修正しました。
完了ハンドラーにいくつかの UI 機能がある場合は、それらをメイン スレッドにディスパッチします。大部分の UIKit はスレッド セーフではないためです。
チャオ

于 2013-07-29T05:45:34.140 に答える
0
requestAccessToAccountsWithType:options:completion:

メソッドは iOS6 以降でのみ使用できます。

iOS5 の場合:

requestAccessToAccountsWithType:withCompletionHandler:

編集::

[account requestAccessToAccountsWithType:accountType
                                  withCompletionHandler:^(BOOL granted, NSError *error)
     {
         dispatch_async(dispatch_get_main_queue(), ^{
             if (granted) 
             {
                 //MY CODE
             }
            else{
             // do whatever you want to do when user dont allow the access to the app
             }
         });
     }];
于 2013-07-29T05:19:52.000 に答える