2011-08-11 168 views
2

保存我的托管对象上下文时收到一个NSValidationErrorObject。我试图挽救了几个对象,他们都得到同样的错误(从用户的信息):CoreData保存错误

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”,它不起作用,但我使用了自动迁移功能,因此我将在不迁移的情况下再次尝试。
  • 如果我删除“标识属性”并重新添加它,使它看起来与以前一样,它的工作原理!
+1

你有一个存储在数据模型中的提取? – TechZen

+0

这是一个很好的想法。没有任何提取的属性存储在模型中,也没有提取请求。 –

+0

如果你可以把它切成块,做部分MODS,然后调用保存。你可能会对更改的内容有更多的了解,它不喜欢 – bshirley

回答

1

identifier可能是有问题的属性 - 尝试myIdentifier,看看它是否工作

(我有打电话,是因为在OBJ - C的含义的东西description问题)

编辑,以反映的意见和结果:

一起删除属性,测试是否有其他故障增大,如果没有错误存在,则将其添加回去。

删除“标识符”属性并在Xcode中再次添加它,修复了问题。这可能是由Xcode核心数据建模器错误引起的。

+0

不幸的是,它没有奏效。重新命名它以测试和使用新的商店会带来完全相同的问题。它决定做一些验证,我不知道为什么! –

+0

有一些验证方法可以实现,也许这样做并且通过调试器进行跟踪可能会提供一些见解? (疯狂猜测) – bshirley

+1

'SELF MATCHES'“'部分让你怀疑它不是可选的,并且nil,一起删除属性,测试是否有另一个失败出现,然后在没有错误时将其添加回去 – bshirley

1

我猜测这是一个命名冲突,由于使用“标识符”作为属性名称。这类似于人们使用“description”作为属性名称时出现的错误。

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

+0

我似乎一直在引导@TechZen – bshirley

+0

我要试一试。好主意。 –

+0

不幸的是,它没有奏效。重新命名它以测试和使用新的商店会带来完全相同的问题。它决定做一些验证,我不知道为什么! –