我正在尝试设置custom property validation对于属于 NSManagedObject
子类的属性。根据文档,Swift 3 中此类方法的一般签名如下:
func validate<Key>(value: AutoreleasingUnsafeMutablePointer<AnyObject?>) throws
我的属性(property)称为amount
,所以我有:
class Transaction: NSManagedObject {
@NSManaged var amount: Float
func validateAmount(value: AutoreleasingUnsafeMutablePointer<AnyObject?>) throws {
// custom validation logic...
}
}
据我了解,当我创建一个新的 Transaction 实例时,设置其 amount
属性,然后尝试保存托管对象上下文, validateValue:forKey:
应该在相关实例上调用,该实例应该依次找到并调用我的自定义验证方法。不幸的是,这没有发生:调用 validateValue:forKey:
,但我的方法被忽略。
您可以在这个 sample project 中亲眼看到这一切(用 Xcode 8.3.3 编写),如果有人能告诉我哪里出错了,我将不胜感激。
最佳答案
func validateAmount(_ value: AutoreleasingUnsafeMutablePointer<AnyObject?>) throws
叫做。添加一个_,如 validateValue(_ value
.
关于swift - Swift 3 中的核心数据属性验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936561/