使用NSDictionaryController和Swift时验证用户默认值

时间:2017-09-16 19:21:29

标签: swift cocoa-bindings

我有一个带有NSDictionaryController的基于视图的表,其内容绑定到Interface Builder中的NSUserDefaultsController:

Content binding

在Swift中验证字典值的正确方法是什么? (字典键会自动验证,并且会为空键引发错误。我想对字典值执行相同的操作。)

2 个答案:

答案 0 :(得分:0)

将单元格中文本字段的委托设置为表格视图的委托,并实现control(_:isValidObject:)

答案 1 :(得分:0)

您需要按如下方式实现一个功能:

@objc func validateToken(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>) throws {
    guard ioValue.pointee != nil else {
        // throw some error
    }
}

你的Cocoa Binding将通过validateValue(_:forKey :)查找该函数。

  

要找到它,属性特定的验证函数必须暴露给Objective-C,必须根据模式validate InKey 命名,必须采用单个,可选的AnyObject指针参数,并且必须抛出(Apple Inc.,2018)。

我假设您的绑定指向字典中的特定值。

参考:

Apple Inc.(2018)。 validateValue(_:forKey :)。取自https://developer.apple.com/documentation/objectivec/nsobject/1416754-validatevalue