我想我已经把自己编入了一个角落,但我希望你们都知道出路。我有一节课......
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:不起作用,没有简单的方法来做我所知道的类似反射的解决方案等等。有什么建议吗?
答案 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]
}