2013-07-04 2 views
1

Итак, я решил создать 2 сущности одного из моих объектов.Модель отображения данных ядра не работает с правильными хэшами

Чтобы проверить, я создал эти два объекта без какого-либо атрибута, ни отношения.

Если я использую модель отображения вывода, данные ядра не работают, и в приложении произошел сбой. Сообщено here

Если я создаю модель сопоставления, данные ядра также не могут быть обновлены. Я проверил журнал основных данных, и он говорит, что хеши данных объекта верны. Что здесь может быть неправильным?

CoreData: annotation: Incompatible version schema for persistent store 
'file://localhost/Users/.../StoreContent/persistentStore'. 
store metadata = { 
    NSPersistenceFrameworkVersion = 419; 
    NSStoreModelVersionHashes =  { 
     Chat = <05d870d5 8d51e966 51a6b121 56fd0eff 6a35760e 829245ce 38e82724 b511b400>; 
     Contact = <7f14d6ac 1bf1035e 63208d38 c048c396 d6385a95 3c8aec0b 36fbb86f 293fdb4d>; 
     Message = <45852277 e01bffe5 a83f71fe 09c20dba 838bb51c 411dc185 56ba4ff1 7b68ba3d>; 
     User = <1400bc94 f742db62 91627ea5 883e54a8 104da454 a9a7b073 f1e827ad 26f7e7c8>; 
    }; 
    NSStoreModelVersionHashesVersion = 3; 
    NSStoreModelVersionIdentifiers =  (
     3July13 
    ); 
    NSStoreType = SQLite; 
    NSStoreUUID = "73F77A17-9720-4D0E-90DD-D07A0EAECB29"; 
    "_NSAutoVacuumLevel" = 2; } and current model versions = { 
    Broadcast = <e2afd25a 758f8e8b 7a2e1f2d 03042e32 e5e23693 a4935257 04a8e9fb 535e2452>; 
    Chat = <05d870d5 8d51e966 51a6b121 56fd0eff 6a35760e 829245ce 38e82724 b511b400>; 
    Contact = <7f14d6ac 1bf1035e 63208d38 c048c396 d6385a95 3c8aec0b 36fbb86f 293fdb4d>; 
    Group = <67fa7527 b68ea99d ee8e704f 30f20e48 58350963 73e29c19 8aea7604 dfac7d7c>; 
    Message = <45852277 e01bffe5 a83f71fe 09c20dba 838bb51c 411dc185 56ba4ff1 7b68ba3d>; 
    User = <1400bc94 f742db62 91627ea5 883e54a8 104da454 a9a7b073 f1e827ad 26f7e7c8>; } 
2013-07-04 10:25:53.678 JonglaIM[90118:22103] 
CoreData: annotation: (migration) will attempt automatic schema 
migration 2013-07-04 10:25:55.209 x[90118:22103] CoreData: 
annotation: (migration) looking for mapping model with source 
hashes: { 
    Chat = <05d870d5 8d51e966 51a6b121 56fd0eff 6a35760e 829245ce 38e82724 b511b400>; 
    Contact = <7f14d6ac 1bf1035e 63208d38 c048c396 d6385a95 3c8aec0b 36fbb86f 293fdb4d>; 
    Message = <45852277 e01bffe5 a83f71fe 09c20dba 838bb51c 411dc185 56ba4ff1 7b68ba3d>; 
    User = <1400bc94 f742db62 91627ea5 883e54a8 104da454 a9a7b073 f1e827ad 26f7e7c8>; } 
destination hashes: { 
    Broadcast = <e2afd25a 758f8e8b 7a2e1f2d 03042e32 e5e23693 a4935257 04a8e9fb 535e2452>; 
    Chat = <05d870d5 8d51e966 51a6b121 56fd0eff 6a35760e 829245ce 38e82724 b511b400>; 
    Contact = <7f14d6ac 1bf1035e 63208d38 c048c396 d6385a95 3c8aec0b 36fbb86f 293fdb4d>; 
    Group = <67fa7527 b68ea99d ee8e704f 30f20e48 58350963 73e29c19 8aea7604 dfac7d7c>; 
    Message = <45852277 e01bffe5 a83f71fe 09c20dba 838bb51c 411dc185 56ba4ff1 7b68ba3d>; 
    User = <1400bc94 f742db62 91627ea5 883e54a8 104da454 a9a7b073 f1e827ad 26f7e7c8>; } 
2013-07-04 10:25:55.214 x[90118:22103] 
CoreData: annotation: (migration) checking mapping model at path 
file://localhost/Users/.../Model.cdm 
source hashes: {(
    <1400bc94 f742db62 91627ea5 883e54a8 104da454 a9a7b073 f1e827ad 26f7e7c8>, 
    <7f14d6ac 1bf1035e 63208d38 c048c396 d6385a95 3c8aec0b 36fbb86f 293fdb4d>, 
    <05d870d5 8d51e966 51a6b121 56fd0eff 6a35760e 829245ce 38e82724 b511b400>, 
    <45852277 e01bffe5 a83f71fe 09c20dba 838bb51c 411dc185 56ba4ff1 7b68ba3d>)} 
destination hashes: {(
    <e2afd25a 758f8e8b 7a2e1f2d 03042e32 e5e23693 a4935257 04a8e9fb 535e2452>, 
    <1400bc94 f742db62 91627ea5 883e54a8 104da454 a9a7b073 f1e827ad 26f7e7c8>, 
    <7f14d6ac 1bf1035e 63208d38 c048c396 d6385a95 3c8aec0b 36fbb86f 293fdb4d>, 
    <67fa7527 b68ea99d ee8e704f 30f20e48 58350963 73e29c19 8aea7604 dfac7d7c>, 
    <05d870d5 8d51e966 51a6b121 56fd0eff 6a35760e 829245ce 38e82724 b511b400>, 
    <45852277 e01bffe5 a83f71fe 09c20dba 838bb51c 411dc185 56ba4ff1 7b68ba3d>)} 2013-07-04 10:25:55.215 x[90118:22103] CoreData: 
annotation: (migration) no suitable mapping model found 
+0

Под «поиском модели сопоставления ... хешей назначения» линия вещания пуста - это была просто плохая копия/вставка? Предположим, что вы пытались явно настроить модель сопоставления на ваш Model.cdm, а не на то, чтобы CoreData выполнял сравнение, чтобы найти совпадение? Я подозреваю, что это не решит проблему, но может генерировать другое сообщение об ошибке с дополнительной информацией о том, почему модель не принимается (не уверен, хотя и не пришлось явно отображать себя). –

+0

Как установить сопоставление в качестве файла model.cdm? Я только что увидел, что основные данные ищут мой файл сопоставления, и он находит его и пытается использовать без успеха. –

+0

Я искал в своем коде и записях, чтобы выяснить, как я вручную указал модель сопоставления, когда я это пробовал, но, к сожалению, ничего не придумал. Однако я столкнулся с этим, что похоже на вашу проблему и предлагает несколько возможных решений: http://blog.vucica.net/2013/04/core-data-migrating-ignores-manual-mapping-model- или-fail-migration-несмотря-mapping-models-exist.html –

ответ

1

API-интерфейс для определения модели отображения непосредственно в NSMigrationManager-х:

- (BOOL)migrateStoreFromURL:(NSURL *)sourceURL 
    type:(NSString *)sStoreType 
    options:(NSDictionary *)sOptions 
    withMappingModel:(NSMappingModel *)mappings 
    toDestinationURL:(NSURL *)dURL 
    destinationType:(NSString *)dStoreType 
    destinationOptions:(NSDictionary *)dOptions 
    error:(NSError **)error; 

К сожалению, это вряд ли поможет, так как же проверка хэша выполняется, когда модель используется непосредственно через этот API.

Хеш-регистрация в iOS 6 нарушена, поскольку она показывает соответствующие хэши, даже если это явно не должно. Если у вас есть доступ к бета-версии iOS 7, попробуйте запустить его и снова сравните хэши. В журнале также может быть немного больше информации.

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

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

Смежные вопросы