- (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将根据self.items数组中对象的属性显示视图,例如item.image,item.Title,item.descriptionText等.
解决方法 NSMainQueueConcurrencyType.UI事件(例如视图确实加载)发生在主线程上.您将在主线程上 *** 作对象(在本例中为self.items),因此您应该确保将它们提取到上下文中/保存在该线程上.
nsprivateQueueConcurrencyType适用于在后台线程上完成工作的上下文.
总结以上是内存溢出为你收集整理的IOS CoreData,NSManagedObjectContextConcurrencyType使用哪个?为什么?全部内容,希望文章能够帮你解决IOS CoreData,NSManagedObjectContextConcurrencyType使用哪个?为什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)