我想我在正确的轨道上,但只是想在这里仔细检查。我最近开始使用AFNetworking从数据库中获取一个大的XML文件,然后我需要解析(我弄清楚了这一部分)。我希望解析发生在后台线程上,然后在主线程上更新我的UI。所以我加了AFXMLRequestOperation成功块内的另一个dispatch_async块:AFNetworking:在后台解析xml
self.xmlOperation =
[AFXMLRequestOperation XMLParserRequestOperationWithRequest: request
success: ^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
XMLParser.delegate = self;
[XMLParser setShouldProcessNamespaces:YES];
[XMLParser parse];
dispatch_async(dispatch_get_main_queue(), ^{
[self.searchResultViewController didFinishImport];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
});
});
}
failure: ^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, NSXMLParser *XMLParser) {
// show error
}];
[self.xmlOperation start];
是在做这个正确的/正确的/最佳方法是什么?
是的,这是正确的。 – rmaddy