CoreData保存错误

时间:2011-08-11 19:08:27

标签: ios core-data

我在保存托管对象上下文时收到NSValidationErrorObject。我试图保存一些对象,他们都得到相同的错误(来自用户信息):

NSDetailedErrors = (
    Error Domain=NSCocoaErrorDomain
    Code=1680 "The operation couldn't be completed. (Cocoa error 1680.)"
    UserInfo=0x5d96fb0 {NSValidationErrorObject=<Alert: 0x5bb1fb0> (entity: Alert; id: 0x5bb0600 <x-coredata:///Alert/tBA1FD03B-5157-4523-AB34-A7C05869778F12> ;
        data: {
        ...
        identifier = "cap_024_0713_320117515151";
        ...}),
    NSValidationErrorKey=identifier,
    NSLocalizedDescription=The operation couldn\U2019t be completed. (Cocoa error 1680.), 
    NSValidationErrorPredicate=SELF MATCHES "", 
    NSValidationErrorValue=cap_024_0713_320117515151}

令我困惑的是,我找不到该密钥导致验证错误的原因。它是可选的,据我所知,它没有启用验证。是否还有其他地方可以检查是否需要设置验证?此错误消息是否可能报告错误的字段?

identifier setup

我现在执行的其他测试:

  • 每次更新后保存。没有变化。
  • 新店。没有变化。
  • 没有提到有关保留字的警告。
  • .m文件中没有任何手动验证。
  • 如果我删除“标识符”属性,则可以正常工作。
  • 如果我将其添加回“alertIdentifier”它不起作用,但我使用了自动迁移,所以我会在没有迁移的情况下再次尝试。
  • 如果我删除“标识符属性”并再次添加,使其看起来与以前一样,那就可以了!

2 个答案:

答案 0 :(得分:1)

我猜这是因使用“identifier”作为属性名称而导致的命名冲突。它与人们使用“描述”作为属性名称时出现的错误类似。

要进行测试,请将其更改为其他内容并查看其是否有效。

答案 1 :(得分:1)

属性名称identifier可能有问题 - 尝试myIdentifier并查看其是否有效

(由于Obj-C中的含义,我在调用description时遇到了问题)

编辑以反映评论和结果:

一起删除属性,测试是否有其他失败,如果没有错误则将其添加回来。

删除“标识符”属性并在Xcode中再次添加该属性修复了该问题。这可能是由Xcode Core Data建模程序错误造成的。

相关问题