swift - NSPplaceholders 和 Swift

标签 swift cocoa swift2 cocoa-bindings

我正在查看数组 Controller 的.selection,我想知道选择何时是多个值或没有。在 ObjC 中,我们通过将选择作为 id 并检查它与各种占位符标记的原始相等性来做到这一点:NSMultipleValuesMarkerNSNoSelectionMarker、和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/

相关文章:

swift - 如何只删除 MapKit 上的某种注释?

ios - 在 CollectionView 标题单元格中访问 SearchBar - Swift

Swift2:返回可选类型对象

ios - 如何使用表格 View 制作粘性页脚和页眉?

swift - 让 Realm 和 Unbox 玩得更好

macos - 如何确定卷是否支持垃圾箱?

swift - cocoa NSScrollView 不滚动

macos - 尽管 header 注释,在 Swift 中采用 NSTextFinderBarContainer 协议(protocol)会强制变量初始化

ios - 我似乎无法在 SWIFT 中使用 UIAlertViewController 从 UITextField 获取输入值?

iphone - xcode 7 tableviewcontroller中的多个pickerview