0

ほとんどの場合、私のアプリは問題なく動作します。iOS6 デバイス設定 > 開発者 > Network Link Conditioner Status > Enable ON > Select the profile to 100 % Loss に移動すると、問題が発生します。このプロファイルを選択すると、UI がハングアップし、数秒間応答しなくなり、その後正常に動作し始めます。この背後にある理由を見つけることができません。同じ状況に遭遇している人はいますか?はいの場合、どのような対策が講じられましたか?

次のコードは、TweetSheet を使用せずに iOS 5 アカウント フレームワークを使用して Twitter に投稿しようとしているときに問題を引き起こしていると思います。リクエストは TWRequest です。performRequest メソッドは、Apple ドキュメントのように固定された特定のスレッドで呼び出されることは保証されていません。メインスレッドでこのメソッドを呼び出すにはどうすればよいですか? それは役に立ちますか?

 [request performRequestWithHandler:

     ^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {

         if(responseData)
         {
             //Do twitter stuff
         }
 }];   
4

2 に答える 2

1

UI はメイン スレッドで実行されるため、そのようなスレッドで時間のかかるメソッドを呼び出さないようにする必要があります。ネットワーク操作は、別のバックグラウンド スレッドで実行する必要があります。

于 2012-12-11T06:40:47.820 に答える
0

おそらく、非同期ではなく同期的にネットワーク要求を行っているでしょう。高速接続でテストする場合、UI は遅くないように見えますが、ネットワークの状態が悪い場合、メイン スレッドで同期ネットワークを実行すると、アプリが機能しなくなる可能性があります。これを読んでください

于 2012-12-11T05:13:45.583 に答える