核心数据:基于谓词的验证
Core Data: Predicate-based validation
我正在处理托管对象验证。到目前为止,我已经完成了 属性 级别的验证。现在我正在思考上面的 属性 验证。我可以通过一个大的 if-else 控制流程来完成,但想知道是否有更优雅的选择。
我发现 NSValidationPredicateErrorKey
和
For predicate-based validation, key for the predicate for the
condition that failed to validate.
在文档中。
不知怎的,我觉得这可能是我的选择,但我没有找到任何关于这个主题的东西。我搜索了官方文档、SO、知名博客、Marcus S. Zarra 的核心数据书籍。
那么什么是基于谓词的验证?它甚至存在吗?如果没有记录,它是否相关?有哪些用例?如果inter-属性验证,例子是什么?
只需在您的托管对象子类中覆盖validateForInsert
和validateForUpdate
即可实现属性间验证,如文档所示[=18] =](带有代码示例)。
"predicate-based" 验证可以通过丰富的托管对象 API 实现。每个 NSManagedObject
都有一个关联的 NSEntityDescription
(一个 属性 称为 entity
)。通过这个你可以得到每个 属性 的 NSPropertyDescription
。 属性 描述依次有一个名为 validationPredicates
的 属性,用于验证的 NSPredicates
数组。请注意,这些是只读的,它们主要用于在验证错误的情况下通知错误对象。此外,据我了解,他们不能总是充分描述上述覆盖中发生的验证。
总而言之,您发现的这个错误键并不真正表明存在指定验证约束的通用的、基于谓词的方法。相反,您必须在托管对象 类.
中覆盖上述方法
我正在处理托管对象验证。到目前为止,我已经完成了 属性 级别的验证。现在我正在思考上面的 属性 验证。我可以通过一个大的 if-else 控制流程来完成,但想知道是否有更优雅的选择。
我发现 NSValidationPredicateErrorKey
和
For predicate-based validation, key for the predicate for the condition that failed to validate.
在文档中。
不知怎的,我觉得这可能是我的选择,但我没有找到任何关于这个主题的东西。我搜索了官方文档、SO、知名博客、Marcus S. Zarra 的核心数据书籍。
那么什么是基于谓词的验证?它甚至存在吗?如果没有记录,它是否相关?有哪些用例?如果inter-属性验证,例子是什么?
只需在您的托管对象子类中覆盖validateForInsert
和validateForUpdate
即可实现属性间验证,如文档所示[=18] =](带有代码示例)。
"predicate-based" 验证可以通过丰富的托管对象 API 实现。每个 NSManagedObject
都有一个关联的 NSEntityDescription
(一个 属性 称为 entity
)。通过这个你可以得到每个 属性 的 NSPropertyDescription
。 属性 描述依次有一个名为 validationPredicates
的 属性,用于验证的 NSPredicates
数组。请注意,这些是只读的,它们主要用于在验证错误的情况下通知错误对象。此外,据我了解,他们不能总是充分描述上述覆盖中发生的验证。
总而言之,您发现的这个错误键并不真正表明存在指定验证约束的通用的、基于谓词的方法。相反,您必须在托管对象 类.
中覆盖上述方法