NSManagedObject
サブクラスに属するプロパティに対してcustom property validationを設定しようとしています。ドキュメントによると、以下のようにスウィフト3で、このような方法のための一般的なシグネチャは次のとおりです。Swiftのコアデータプロパティ検証3
func validate<Key>(value: AutoreleasingUnsafeMutablePointer<AnyObject?>) throws
私の財産はamount
と呼ばれているので、私は持っている:
class Transaction: NSManagedObject {
@NSManaged var amount: Float
func validateAmount(value: AutoreleasingUnsafeMutablePointer<AnyObject?>) throws {
// custom validation logic...
}
}
私はそれを理解したよう新しいトランザクションインスタンスを作成し、そのamount
プロパティを設定し、マネージオブジェクトコンテキストを保存しようとすると、関連するインスタンスでvalidateValue:forKey:
が呼び出され、カスタム検証メソッドが見つけ出されて呼び出される必要があります。残念ながら、これは起こっていません:validateValue:forKey:
が呼び出されますが、私のメソッドは無視されます。
これはsample project(Xcode 8.3.3で書かれています)ですべて見ることができます。誰かが間違っていると私に教えてもらえれば幸いです。
'func validateAmount(_値:AutoreleasingUnsafeMutablePointer)throwsは正しい署名であるようです。 –