【发布时间】:2013-07-04 07:36:53
【问题描述】:
所以我决定为我的一个实体创建 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
【问题讨论】:
-
在“寻找映射模型...目标哈希”下,广播行是空的 - 这只是一个错误的复制/粘贴吗?假设是这样,您是否尝试过将映射模型显式设置为 Model.cdm,而不是让 CoreData 进行比较以找到匹配项?我怀疑这不会解决问题,但可能会生成一条不同的错误消息,其中包含有关模型不被接受的原因的更多信息(虽然不确定,但不必明确映射自己)。
-
如何将映射设置为我的 model.cdm 文件?我刚刚看到核心数据搜索我的映射文件并找到它并尝试使用,但没有成功。
-
我一直在查看我的代码和书签,以了解我在尝试一次时如何手动指定映射模型,但不幸的是没有提出任何建议。但是,我确实遇到了这个问题,这似乎与您的问题相同,并提供了几种可能的解决方案:blog.vucica.net/2013/04/…
-
另见 stackoverflow.com/questions/15094213/… 我没有发现在 Xcode 5 中重新生成映射模型有帮助,但它可能对你有用。