Каков наилучший способ хранения данных на iphone с набором предварительно загруженных значений, которые должны быть изменены из программы - PullRequest
0 голосов
/ 16 июня 2011

Каков наилучший способ хранения данных на iphone с набором предварительно загруженных значений, которые также должны быть изменены из программы?

Можем ли мы предварительно загрузить значения в базу данных coredata. Если да, то как

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Если вы используете Core Data, вы можете определить, существует ли ваш файл поддержки базовых данных перед созданием NSPersistentStoreCoordinator, и если нет, либо скопировать версию по умолчанию из вашего комплекта на место, прежде чем создавать постоянный координатор хранилища, или использовать код для вставки необходимогообъекты после создания NSManagedObjectContext.В последнем случае это может выглядеть примерно так:

BOOL insertDefaultObjects = NO;
if (managedObjectContext == nil) {
    if (persistentStoreCoordinator == nil) {
        NSString *storePath = /* ... */;
        insertDefaultObjects = ![[NSFileManager defaultManager] fileExistsAtPath:storePath];

        persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel];
        /* ... and so on ... */
    }

    managedObjectContext = [[NSManagedObjectContext alloc] init];
    [managedObjectContext setPersistentStoreCoordinator:persistentStoreCoordinator];

    if (insertDefaultObjects) [self insertDefaultObjectsIntoContext:managedObjectContext];
}

insertDefaultObjectsIntoContext: будет просто использовать стандартные методы Core Data для создания необходимых объектов и сохранения их в хранилище Core Data.

Если вы используете какой-либо другой тип хранилища данных, например, XML-файл, plist и т. Д., То же самое справедливо: проверьте, существует ли файл в вашем каталоге Documents или Application Support, или отметьте «скопированные значения по умолчанию»"введите NSUserDefaults, если файл может быть удален пользователем, и при необходимости скопируйте версию по умолчанию из пакета приложения.

1 голос
/ 16 июня 2011
...