如何创建NSManagedObjectContext

时间:2010-08-29 23:48:20

标签: 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等。

1 个答案:

答案 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

干杯!