我正在构建一个iOS应用程序,我想知道是否有一种方法可以在后台线程上从我的请求结果中构建我的模型对象。看来AFHTTPClient请求方法上的成功回调/块都是在主线程上完成的。
答案 0 :(得分: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示例项目。希望有所帮助!
答案 1 :(得分:0)
AFHTTPRequestOperation还有一个'successCallbackQueue'属性,默认情况下设置为主队列,但您可以将其调整为您想要的任何队列。