我在保存托管对象上下文时收到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}
令我困惑的是,我找不到该密钥导致验证错误的原因。它是可选的,据我所知,它没有启用验证。是否还有其他地方可以检查是否需要设置验证?此错误消息是否可能报告错误的字段?
我现在执行的其他测试:
答案 0 :(得分:1)
我猜这是因使用“identifier”作为属性名称而导致的命名冲突。它与人们使用“描述”作为属性名称时出现的错误类似。
要进行测试,请将其更改为其他内容并查看其是否有效。
答案 1 :(得分:1)
属性名称identifier
可能有问题 - 尝试myIdentifier
并查看其是否有效
(由于Obj-C中的含义,我在调用description
时遇到了问题)
编辑以反映评论和结果:
一起删除属性,测试是否有其他失败,如果没有错误则将其添加回来。
删除“标识符”属性并在Xcode中再次添加该属性修复了该问题。这可能是由Xcode Core Data建模程序错误造成的。