3
NSManagedObjectContextConcurrencyType에 대한 설명서를 이해할 수 없습니다. 다음과 같은 상황에서 어떤 유형을 사용해야하며 그 이유는 무엇입니까?IOS CoreData, NSManagedObjectContextConcurrencyType을 사용하는 이유는 무엇입니까?
- (void)viewDidLoad
{
self.managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:???];
[self loadRecordsFromCoreData];
}
- (void)loadRecordsFromCoreData {
[self.managedObjectContext performBlockAndWait:^{
//[self.managedObjectContext reset]; //do I need to do this?
NSError *error = nil;
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Item"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"display == YES"];
[request setPredicate:predicate];
[request setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]]];
self.items = nil;
self.items = [self.managedObjectContext executeFetchRequest:request error:&error];
}];
[self displayItems];
}
-displayItems는 등 item.image, item.title, item.descriptionText,
여러 스레드에서 사용 하시겠습니까? – borrrden
아니요. 개별보기 컨트롤러에 자체 컨텍스트가 있어야합니까? 아니면 그냥 애플 리케이션 대리인에 하나의 주요 컨텍스트가 있어야합니까? 이런 식으로 자신 만의 컨텍스트를 만드는 뷰 컨트롤러가 3 개 있습니다. – soleil
문제는 스레드가 안전하지 않다는 것입니다. 한 스레드에서만 호출하려는 경우 기본 유형 (스레드 제한 유형)을 사용할 수 있습니다. 스레드 당 하나씩 만 필요합니다. – borrrden