将Mogenerator与Core Data实体一起使用会导致保存数据存储时出错

时间:2013-12-14 21:00:35

标签: objective-c core-data magicalrecord mogenerator ftasync

我有一个iPad应用程序,我使用MagicalRecord在SQLite d / b中保存核心数据实体。 一切正常,直到我决定使用FTASync将核心数据与Parse.com同步。

FTASync的部分要求是您必须使用mogenerator来生成实体类文件。现在,我收到了这个错误:

2013-12-14 12:38:59.375 foo[5451:70b] Failed to save to data store: The operation couldn’t be completed. (Cocoa error 1560.)
2013-12-14 12:38:59.380 foo[5451:70b]   DetailedError: {
    NSLocalizedDescription = "The operation couldn\U2019t be completed. (Cocoa error 1570.)";
    NSValidationErrorKey = objectId;
    NSValidationErrorObject = "<PreferenceData: 0x1149c3a0> (entity: PreferenceData; id: 0x114a7eb0 <x-coredata://03C39CC9-AC6C-4E56-BB5A-67038ACB6801/PreferenceData/p25> ; data: {\n    aAddlSvcs1 = \"\";\n    aAddlSvcs10 = \"\";\n    aAddlSvcs11 = \"\";\n    aAddlSvcs12 = \"\";\n    aAddlSvcs2 = \"\";\n    aAddlSvcs3 = \"\";\n    aAddlSvcs4 = \"\";\n    aAddlSvcs5 = \"\";\n    aAddlSvcs6 = \"\";\n    aAddlSvcs7 = \"\";\n    aAddlSvcs8 = \"\";\n    aAddlSvcs9 = \"\";\n    aApptInterval = \"\";\n    aDeleteOldAppts = \"-1\";\n    aDoubleBooking = \"-1\";\n    aHideHelpBtns = 0;\n    aHourFormat12 = 0;\n    aShopCloses = 1200;\n    aShopOpens = 1000;\n    createdHere = 1;\n    deleted = 0;\n    objectId = nil;\n    syncStatus = 2;\n    updatedAt = nil;\n})";
}

如果我想使用FTASync同步我的核心数据存储,我 使用mogenerator。

那么,这究竟是什么告诉我,除了“它无法完成”?我该如何解决这个问题?

更新: 这是来自XCode数据模型检查器的图像

enter image description here

1 个答案:

答案 0 :(得分:1)

您已使用模型编辑器在xcdatamodel中定义了一些验证规则:最小/最大值,必需关系,最小/最大字符串长度。

当您通过GUI插入对象时,当您尝试创建未通过验证的对象时,您会看到即时反馈。但是,如果您在代码中创建或修改对象,除非您尝试保存托管对象上下文,否则不会看到错误。

您可以在创建PreferenceData实例的代码中调用-validateForUpdate :(或-validateForInsert:或-validateForDelete :)。在构建对象时多次调用它,你会看到你出错的地方。