0

すべてはタイトルです:)私はこの方法を持っています:

[[NetworkManager sharedInstance] getContentFromUrl:url withId:@"json" onResultBlock:^(NSData *data, NSString *identifier) {
            NSLog(@"done")
    } onFailureBlock:^(NSError *error, NSString *identifier) {
        NSLog(@"error");
    }];

私のアプリでは、50 セルのテーブルビューが 1 つあります。アプリを実行し、指でテーブルビューを移動すると、「完了」メッセージが表示されません。だから、次のダウンロードは開始されません:(しかし、テーブルビューで指を離すと、「完了」メッセージが表示されます...

情報: メソッド getContentFromUrl は、NSOperation によってサブクラス化されたオブジェクトをインスタンス化します。このオブジェクトでは、NSURLConnection initWithRequest:delegate: を使用してコンテンツを取得します。次に、オブジェクトが NSOperationQueue に追加されます。

答えのためのThx :)

4

1 に答える 1

0

あなたのクラスは、デフォルトの実行ループ モードで、メイン スレッドでNetworkManager非同期オブジェクトをスケジュールしています。NSURLConnection指を下ろしている間は、代わりに実行ループがNSEventTrackingRunLoopModeモードになります。これにより、接続が一時停止します。

NetworkManagerを使用して明示的に接続をスケジュールするように変更する必要がありますNSRunLoopCommonModes。これには、デフォルト モードとイベント追跡モードが含まれます。

于 2012-08-14T23:14:34.060 に答える