Отредактированные объекты xcdatamodeld, но получают Crash - Основные данные в быстром - PullRequest
0 голосов
/ 15 октября 2019

Я переименовал некоторые Entities из name.xcdatamodeld и удалил другие Entities, а затем я удалил приложение из симулятора и перезапустил его, но когда я запустил приложение, у меня произойдет сбой ниже:

PortalApp[4672:94749] [error] error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///Users/me/Library/Developer/CoreSimulator/Devices/C094CF3E-7181-40AC-A524-3F8A8DFF4435/data/Containers/Data/Application/4B52E366-DB37-4E7C-AB65-DA7B4D2B3BB3/Documents/MyDB.sqlite options:(null) ... returned error Error Domain=NSCocoaErrorDomain Code=134100 "(null)" UserInfo={metadata={
    NSPersistenceFrameworkVersion = 866;
    NSStoreModelVersionHashes =     {
        Degrees = <2b0631df 5061efec 22ec7f0a dcf7e24f b77c2c73 2f8b9e31 97232c2d 17e05d98>;
        ShortMajorTBL = <9d0263c5 f17cc305 bff7b776 df4a4318 62036151 4d526781 2a21fdde c33a28f1>;
    };
    NSStoreModelVersionHashesVersion = 3;
    NSStoreModelVersionIdentifiers =     (
        ""
    );
    NSStoreType = SQLite;
    NSStoreUUID = "2AC92D09-DE75-40EA-827A-3217C64A301E";
    "_NSAutoVacuumLevel" = 2;
}, reason=The model used to open the store is incompatible with the one used to create the store} with userInfo dictionary {
    metadata =     {
        NSPersistenceFrameworkVersion = 866;
        NSStoreModelVersionHashes =         {
            Degrees = <2b0631df 5061efec 22ec7f0a dcf7e24f b77c2c73 2f8b9e31 97232c2d 17e05d98>;
            ShortMajorTBL = <9d0263c5 f17cc305 bff7b776 df4a4318 62036151 4d526781 2a21fdde c33a28f1>;
        };
        NSStoreModelVersionHashesVersion = 3;
        NSStoreModelVersionIdentifiers =         (
            ""
        );
        NSStoreType = SQLite;
        NSStoreUUID = "2AC92D09-DE75-40EA-827A-3217C64A301E";
        "_NSAutoVacuumLevel" = 2;
    };
    reason = "The model used to open the store is incompatible with the one used to create the store";
}

Iудалил Degrees table и переименовал ShortMajorTBL в FiltersTBL.

Я очистил проект и собрал его, но пока не потерпел крах.

1 Ответ

0 голосов
/ 16 октября 2019

Это классический случай, когда хранилище было создано, состояние сущностей отличается от текущего состояния сущностей, и вот на что он жалуется.

Существуют различные способы, с помощью которых вы можете решить эту проблему.

  • При разработке приложения может помочь удаление приложения из симулятора / устройства.
  • Поскольку вы находитесь на этапе разработки, самый простой способ - найти путь к постоянному хранилищу. Как только у вас есть путь, перейдите по этому пути в поисковике и удалите 3 файла sqlite (с расширениями .sqlite, .slite-shm, .sqlite-wal), которые создаются Core Data как часть хранилища. Вы даже можете уничтожить хранилище программным путем, но обязательно удалите код уничтожения хранилища после того, как ошибки исчезнут.
  • Если ваше приложение уже находится в магазине приложений и вы разрабатываете новую версию, то вам следует обратить внимание на миграцию. , так как вышеуказанные пункты могут предоставить вам временные решения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...