swift - Swift 3 中的核心数据属性验证

标签 swift cocoa core-data

我正在尝试设置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/

相关文章:

swift - 导航后退按钮快速目的地

cocoa - 如何通过 NSArrayController 和 cocoa 绑定(bind)获取记录计数和值聚合

macos - NSLocalizedString 不返回本地化文本 XCode4

ios - 如何根据核心数据值在 Objective C 中生成随机字符串

ios - UIscrollview 不快速滚动

swift : Animate SKSpriteNode Gradient

ios - 使用 addTarget(目标 :action:) without self

cocoa - MonoMac 中的 NSReadPixel 在哪里?

ios - 使用 Swift 从 CSV 初始化 CoreData

ios - 在我的 iOS 项目中是否使用文件或使用核心数据的 sqlite 数据库?