在iPhone的核心数据中,我在尝试将数据保存到NSManagedObjectContext
时遇到了各种各样的错误。
我相信我的问题与我使用在多个线程中使用的NSManagedObjectContext
有关。
所以我想创建一个新的NSManagedObjectContext
并试试,但我找不到简单创建新实例的示例代码......
我知道这很简单,但我真的很感激这里有任何帮助。
注意,我在Apple文档上看过这篇文章:http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/CoreDataUtilityTutorial/Articles/05_createStack.html
但这会使用一些我不熟悉的代码,比如iPhone上不支持的XMLStore等。
答案 0 :(得分:14)
这是创建新上下文的代码:
- (NSManagedObjectContext *)managedObjectContext {
NSManagedObjectContext *managedObjectContext = nil;
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:coordinator];
[managedObjectContext setUndoManager:nil];
}
return [managedObjectContext autorelease];
}
它只是创建一个新的上下文实例并设置你想要使用的商店。
如果你有多个商店,你会选择这样的东西:
- (NSManagedObjectContext *)managedObjectContextForStore:(NSString *)store {
NSManagedObjectContext *managedObjectContext = nil;
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinatorForStore:store];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:coordinator];
[managedObjectContext setUndoManager:nil];
}
return [managedObjectContext autorelease];
}
有关详细信息,请查看Apple's Core Data Tutorial for iOS。
干杯!