NSPlaceholders 和 Swift

NSPlaceholders and Swift

我正在查看数组控制器的 .selection,我想知道何时选择多个值或 none。在 ObjC 中,我们通过将选择作为 id 并检查它与各种占位符标记的原始相等性来做到这一点:NSMultipleValuesMarkerNSNoSelectionMarkerNSNotApplicableMarker.

但这在 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中,==是为了检查值是否相等(也就是说,如果两个对象包含相同的数据,不管它们是否共享相同的内存位置)。使用 === 运算符检查引用相等性(测试两个对象是否共享相同的内存位置)。