내가 원하는 일은 백그라운드 스레드에서 비동기 핵심 데이터 작업을 생성하여 주 스레드를 씹지 않도록하는 것이지만 작업이 완료되면 주 스레드 작업을 수행하려고합니다. 다 ... dispatch_async dispatch_get_main_queue() dispatch_get_main_queue() inside NSManagedObjectContext performBlock
여기 여기 [[MYCoreDataManager sharedInstance]doTaskwithCompletion:^(BOOL complete) {
if (complete == YES) {
dispatch_async(dispatch_get_main_queue(), ^{
// back to the main thread
});
}
}];
뭔가이 잘못 알려줍니다 내 블록 방법의 내 작업
-(void)doTaskwithCompletion:(coreDataCompletion)complete
{
[self.backgroundManagedObjectContext performBlock:^{
// do my BG core data task
[self saveContext:self.backgroundManagedObjectContext];
complete(YES);
}];
}
...하지만 나는 myse를 넣어 또 다른 방법을 찾을 수 없습니다 블록이 완료되면 주 스레드로 돌아가서 ... 알림이 너무 clunky 것 같습니다.
간단히 말해서 내 질문은 moc performBlock:^
안에 dispatch_async(dispatch_get_main_queue()
으로 전화 할 수 있습니까?
는 기본적으로
-(void)doTaskwithCompletion:(coreDataCompletion)complete
{
[self.backgroundManagedObjectContext performBlock:^{
// do my BG core data task
[self saveContext:self.backgroundManagedObjectContext];
dispatch_async(dispatch_get_main_queue(), ^{
// back to the main thread
});
}];
}
문제가 무엇
[[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
? 왜 네가 할 수 없다고 생각하니? –