5

在 iPhone 的核心数据中,我在尝试将数据保存到NSManagedObjectContext.

我相信我的问题都与我使用NSManagedObjectContext在多个线程中使用的 a 有关。

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

我知道它很简单,但我非常感谢这里的任何帮助。

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

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

4

1 回答 1

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 的 iOS 核心数据教程

干杯!

于 2010-08-30T00:00:20.590 回答