0

我的应用程序中有两个 tableView,用户应该能够向它们添加对象。使用一个 tableView 它可以正常工作(只有一个 coreData entity)。但是当我添加另一个实体并只使用一个 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 中做了与第一个相同的事情。

也许有人可以帮助我。预先感谢

4

1 回答 1

0

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

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

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

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

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

于 2013-08-08T04:45:30.780 回答