【发布时间】:2011-09-30 20:18:37
【问题描述】:
我有一个类,我用不同的数据多次调用。
该类调用一个网络服务,解析它对 NSDictionary 的响应,并将数据保存在 Core Data 上。
Web 服务的调用和核心数据的保存在不同的线程中完成,使用核心数据队列,以便 UI 保持响应。
类:
- (void)refreshDataFromWebService:(NSString *)webserviceWSDL
{
dispatch_queue_t receiveActivities = dispatch_queue_create("com.myApp.ws.wsdlMethod", NULL);
dispatch_async(receiveData, ^(void)
{
//call web service
//...
//parse received data to NSDictionary
//...
});
dispatch_release(receiveData);
}
//some work
//the class that works with the WS, calls a method on it's delegate, and the saveData is called.
- (void)saveData
{
dispatch_queue_t request_queue = dispatch_queue_create("com.myApp.insertDataOnCoreData", NULL);
dispatch_async(request_queue, ^{
//save data to CoreData with new Manage Object Context
//...
//...
});
dispatch_release(request_queue);
}
问题是我需要按某种顺序调用这个类大约 15 次。
最好的方法是什么?
我应该打电话吗:
[SomeClass refreshDataFromWebService:method_1];
[SomeClass refreshDataFromWebService:method_2];
[SomeClass refreshDataFromWebService:method_3];
[SomeClass refreshDataFromWebService:method_4];
还是我应该换一种方式?
目标是method_2仅在method_1完成保存CoreData后调用,由于关系。
感谢您的宝贵帮助,
瑞洛佩斯
【问题讨论】:
标签: iphone ios multithreading core-data grand-central-dispatch