如何创建NSManagedObjectContext

Mar*_*ark 5 iphone core-data nsmanagedobjectcontext

在iPhone的核心数据中,我遇到了各种错误,试图将数据保存到NSManagedObjectContext.

我相信我的问题与我使用NSManagedObjectContext多线程中使用的问题有关.

所以我想创建一个新的NSManagedObjectContext并尝试,但我找不到简单创建新实例的示例代码...

我知道这很简单,但我真的很感激这里的任何帮助.

注意,我在Apple文档上看过这篇文章:http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/CoreDataUtilityTutorial/Articles/05_createStack.html

但是这使用了一些我不熟悉的代码,比如iPhone上不支持的XMLStore等.

vfn*_*vfn 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];
}
Run Code Online (Sandbox Code Playgroud)

它只是创建一个新的上下文实例并设置您想要使用的商店.

如果你有多个商店,你可以选择这样的东西:

- (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];
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看Apple的iOS核心数据教程.

干杯!