我想我在正確的軌道上,但只是想在這裏仔細檢查。我最近開始使用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