CoreData-Project有两个实体

时间:2013-08-07 13:22:10

标签: ios core-data entity

我的应用程序中有两个tableViews,用户应该可以向它们添加对象。使用一个tableView它可以正常工作(只有一个coreData 实体)。但是当我添加另一个实体并执行与只有一个tableView相同的操作时,xcode会向我显示错误。

输出结果为:

 Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x10333d80 {metadata={
    NSPersistenceFrameworkVersion = 419;
    NSStoreModelVersionHashes =     {
        Buy = <883135e4 2884b0ed 4bb8fc1c 7d56c229 fbae3090 91be719d 73ac5d66 65e70b18>;
    };
    NSStoreModelVersionHashesVersion = 3;
    NSStoreModelVersionIdentifiers =     (
        ""
    );
    NSStoreType = SQLite;
    NSStoreUUID = "...";
    "_NSAutoVacuumLevel" = 2;
}, reason=The model used to open the store is incompatible with the one used to create the store}, {
    metadata =     {
        NSPersistenceFrameworkVersion = 419;
        NSStoreModelVersionHashes =         {
            Buy = <883135e4 2884b0ed 4bb8fc1c 7d56c229 fbae3090 91be719d 73ac5d66 65e70b18>;
        };
        NSStoreModelVersionHashesVersion = 3;
        NSStoreModelVersionIdentifiers =         (
            ""
        );
        NSStoreType = SQLite;
        NSStoreUUID = "...";
        "_NSAutoVacuumLevel" = 2;
    };
    reason = "The model used to open the store is incompatible with the one used to create the store";
}
(lldb) 

我已经尝试解决这个问题好几个小时了,但我在第二个tableView中做的和第一个一样。

也许有人可以帮助我。谢谢你提前

1 个答案:

答案 0 :(得分:0)

在设计模型时,您需要进行迁移:

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/CoreDataVersioning/Articles/Introduction.html

所以你应该做的第一件事是创建一个新的模型版本。

对于添加字段和实体的事情,coredata可以通过轻量级迁移自动执行此操作。对于更复杂的事情,您需要创建映射模型。

如果您的应用不在商店中且没有任何用户,则根本不需要担心迁移。只需从手机/模拟器中删除应用程序并运行您的应用程序。如果您在商店中有应用程序,则必须指定新的模型版本并进行迁移。