拥有NSManagedObjectContext
并发类型为NSPrivateQueueConcurrencyType
的PromiseKit可以用来美化performBlock:^{}
/ performBlockAndWait:^{}
吗?
我的第一个想法是这样写:
- (PMKPromise *)updateModel:(Model *)model
{
return [PMKPromise new:^(PMKPromiseFulfiller fulfill, PMKPromiseRejecter reject) {
[_managedContenxtModel performBlock:^{
//...
fulfill(...)
}];
}];
}
但是,我担心因为promise块会在DISPATCH_QUEUE_CONCURRENT
中注册,如果来自不同线程的updateModel:
多次调用,则无法保证来自performBlock
的块以正确的顺序注册。
这是否会发生变化?
那么使用performBlockAndWait:^{}
呢?
答案 0 :(得分:0)
您可以将dispatch_promise_on
与您自己创建的并发队列一起使用:
- (PMKPromise *)updateModel:(Model *)model
{
return dispatch_promise_on(myQ, ^{
[_managedContenxtModel performBlockAndWait:^{
//...
}];
fulfill(...)
}];
}
如果这不能回答您的问题,请告诉我,我会尝试进一步提供帮助。