NSManagedObjectModel versionIdentifiers - PullRequest
       11

NSManagedObjectModel versionIdentifiers

2 голосов
/ 09 октября 2010

Документация для NSManagedObjectModel -versionIdentifiers гласит:

Инфраструктура базовых данных не предоставляет моделям идентификатор по умолчанию и не зависит от этого значения во время выполнения.Для моделей, созданных в XCode, вы устанавливаете это значение в инспекторе моделей.

Я не уверен, но я думаю, что установка идентификаторов версий может помочь мне, когда я буду заниматься программированием классов политики миграции моделей.Кто-нибудь знает, как можно установить эти идентификаторы в XCode?Я безуспешно ковыряюсь.

Спасибо.

1 Ответ

3 голосов
/ 23 октября 2010

Хорошо, этот подход не помог мне. Я решил свои проблемы с отладкой миграции Core Data с помощью следующего кода:

    NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Spark.sqlite"]];

    NSError *error = nil;
    NSDictionary *sourceMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:NSSQLiteStoreType
                                                                    URL:storeUrl
                                                                    error:&error];

    if (!sourceMetadata)
        NSLog(@"sourceMetadata is nil");
    else
        NSLog(@"sourceMetadata is %@", sourceMetadata);

С другой стороны, я только что разобрался с ответом на мои оригинальные вопросы, fwiw.

Если вы зайдете в окно своего проекта и выберите файл .xcdatamodel и «получите информацию», то большую часть времени вы получите окно «Файл» Xxx.xcdatamodel «Информация» - с «General», «Targets» , Вкладки «Сборка» и «Комментарии». (Да, часть «большую часть времени» меня смущает.)

Однако, если вы затем снова выберите свой файл .xcdatamodel и «получите информацию», вы (вероятно) получите совсем другой инспектор - тот, который называется «Модель данных» Xxx «Информация». В этом окне есть две вкладки: «Внешний вид» и «Управление версиями». На вкладке «Управление версиями» можно установить идентификатор версии модели.

Итог: установка идентификатора версии модели в Xcode сродни переходу на платформу 9 3/4 - но в отличие от 9 3/4, как только вы туда доберетесь, не совсем понятно, почему вы хотите быть там.

...