我正在查看数组 Controller 的.selection
,我想知道选择何时是多个值或没有。在 ObjC 中,我们通过将选择作为 id
并检查它与各种占位符标记的原始相等性来做到这一点:NSMultipleValuesMarker
、NSNoSelectionMarker
、和NSNotApplicableMarker
。
但这在 Swift 中不起作用:
let currentValue = eventsArrayController.selection.valueForKey("enabled")
if let markerVal = currentValue {
if markerVal == NSMultipleValuesMarker {
// this doesn't compile, AnyObject's can't be compared with ==
}
switch markerVal {
case NSNoValueMarker:
// this doesn't compile, an AnyObject is not a valid pattern
}
}
如何在 Swift 中测试占位符标记的值?
最佳答案
在 Swift 中,==
旨在检查值是否相等(即,两个对象是否包含相同的数据,无论它们是否共享相同的内存位置)。使用 ===
运算符检查引用是否相等(测试两个对象是否共享相同的内存位置)。
关于swift - NSPplaceholders 和 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310877/