2

我正在构建一个 iOS 应用程序,我想知道是否有一种方法可以根据我在后台线程上的请求结果构建我的模型对象。AFHTTPClient 请求方法上的成功回调/块似乎都是在主线程上完成的。

4

2 回答 2

5

使用dispatch_async

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
        // Do model serialization here, e.g.: 
        // NSMutableSet *mutableRecords = [NSMutableSet set];
        // for (NSDictionary *attributes in [JSON valueForKey:@"records"]) {
        //  [mutableRecords addObject:[[YourModelClass alloc] initWithDictionary:attributes]];
        // }

        dispatch_async(dispatch_get_main_queue(), ^(void) {
            // Execute callback passing, e.g.:
            // block(mutableRecords);
        });
    });

这将在请求操作的成功块中。该block变量将是传递给发出请求的方法的参数。有关更多信息,请参阅 iOS 示例项目。希望有帮助!

于 2012-05-30T15:08:35.470 回答
0

AFHTTPRequestOperation 还有一个 'successCallbackQueue' 属性,默认设置为主队列,但您可以将其调整为您想要的任何队列。

于 2012-06-01T15:57:51.310 回答