как вы создаете NSManagedObjectContext - PullRequest
5 голосов
/ 30 августа 2010

В основных данных для iPhone я получал всевозможные ошибки, пытаясь сохранить данные в NSManagedObjectContext.

Я считаю, что все мои проблемы были связаны со мной, используя NSManagedObjectContext, которыйиспользовался в нескольких потоках.

Итак, я хотел создать новый NSManagedObjectContext и попробовать это, но я не могу найти пример кода для простого создания нового экземпляра ...

IЯ знаю, что это просто, но я бы очень признателен за любую помощь.

Обратите внимание, я видел эту статью в документации Apple: http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/CoreDataUtilityTutorial/Articles/05_createStack.html

Но здесь используется некоторый код, который мне не знакомкак XMLStore, который не поддерживается на iPhone и т. д.

1 Ответ

14 голосов
/ 30 августа 2010

это код для создания нового контекста:

- (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 .

Cheers!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...