0

一切都是标题:)我有这个方法:

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

在我的应用程序中,我有一个包含 50 个单元格的表格视图。当我运行我的应用程序并用手指移动表格视图时,不会出现“完成”消息。所以,下一次下载没有开始:(但是当我在桌面视图上松开手指时,出现“完成”消息......

信息:getContentFromUrl 方法实例化了一个由 NSOperation 子类化的对象。在这个对象中,我使用 NSURLConnection initWithRequest:delegate: 获取内容,然后,将对象添加到 NSOperationQueue 中。

谢谢你的答案:)

4

1 回答 1

0

您的类在默认运行循环模式下在主线程上NetworkManager调度异步对象。NSURLConnection当您的手指向下时,运行循环将进入NSEventTrackingRunLoopMode模式。这将暂停连接。

NetworkManager应修改为使用NSRunLoopCommonModes. 这包括默认模式和事件跟踪模式。

于 2012-08-14T23:14:34.060 回答