将Swift属性绑定到NSTableView?

时间:2015-12-27 19:01:40

标签: swift nsdictionary nstableview

我想我已经把自己编入了一个角落,但我希望你们都知道出路。我有一节课......

class Card {
    var order: Int? = -1
    var tag: String = "0"
    var comment: String?
    var data : [String: NSNumber]
}

理想情况下,所有内容都在data中,这是一些字符串和大量数字。我从[String, String]开始,但是当我想(比如)将其中一个数字与零进行比较时,我发现我正在编写大量代码来进行转换和转换。将其更改为[String, NSNumber]简化了所有 代码,但现在我的tableViewDataSource变得非常复杂,因为某些数据位于data中,而某些数据位于单独的属性中,如{{1 }}。我甚至尝试过comment,但是所有事情都必须一直投入任何事情。

我有一种感觉,我错过了一些基本的东西。使用NSTableViews时,是否有一种简单的方法可以使用我缺少的Swift属性? valueForKey:不起作用,没有简单的方法来做我所知道的类似反射的解决方案等等。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您只能绑定dynamic个属性,并且您的类需要从NSObject继承或实现NSObjectProtocol。此外,不允许使用nilable值类型,因此您无法绑定Int?

即:

class Card: NSObject {
    dynamic var order: Int = -1
    dynamic var tag: String = "0"
    dynamic var comment: String?
    dynamic var data: [String: NSNumber]
}