ios - 如何在 Core Data 中进行自定义验证(为了唯一性)?

标签 ios validation core-data

我在核心数据中有一个实体,它有一个需要唯一的属性。没有办法在可视化界面中设置它。我假设我需要创建一个继承自 NSManagedObject 的自定义类,然后编写我自己的验证方法。

我通过在可视化编辑器中选择实体并选择文件 -> 新建 -> 新建文件 -> NSManagedObject 子类成功创建了自定义类。我用它来添加创建时间戳,所以我知道它有效。

但是现在呢?我需要哪些方法?

NSManagedObject reference guide告诉我“实现形式为 validate:error: 的方法”,但没有提供示例。

类似问题herehere ,但我需要更多帮助。

一个完整的例子会很棒,但非常感谢任何帮助。

最佳答案

假设您拥有属性(property) foo你想验证

来自 Property-Level Validation :

If you want to implement logic in addition to the constraints you provide in the managed object model, you should not override validateValue:forKey:error:. Instead you should implement methods of the form validate<Key>:error:.

在哪里<Key>是你的属性(property)。你实际上会实现类似的东西:

-(BOOL)validateFoo:(id *)ioValue error:(NSError **)outError {
    return [self isUnique];
}

关于ios - 如何在 Core Data 中进行自定义验证(为了唯一性)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891110/

相关文章:

ios - 如何在 TableViewController B 中选择行时在 ViewController A 中启用 UI 按钮

iOS RestKit 上传进度指示器

java - Jax ws- xs :date format validation

asp.net - 为什么只有在属性验证通过时才调用 IValidatableObject.Validate?

core-data - 核心数据 + CloudKit - 在 iOS 和 watchOS 配套应用之间共享

ios - iPad Mini 上 GCD 后台队列挂起时的 CoreData 保存

ios - 通过 segue 从 map 标注中的 detailDisclosure 按钮将数据传递到新的 DetailView

ruby-on-rails - Rails 验证语句中的 lambda 表达式

ios - 使用 Core Data 进行快速零结果过滤

ios - plist 文件会不会太大?