我想在我的Cocoa应用中使用NSTableView
,因此我必须将表格视图的NSTableViewDataSource
委托设置为self
。但是,由于错误Cannot assign to the result of this expression
,以下代码无法编译。
myTable.dataSource = self
我确实将myTable
变量声明为:
@IBOutlet var myTable: NSTableView
另请注意,我正确声明我的AppDelegate符合NSTableViewDataSource
协议。
上面两行有什么问题?
另外,我将表格视图声明为@IBOutlet var myTable: NSTableView
是否正确?或者我应该将其定义为可选或隐式展开的可选变量?
答案 0 :(得分:3)
看起来NSTableView
尚未完全现代化。它的dataSource
属性仍然是非正式的,仅作为访问器方法存在,而不是使用@property
声明的属性。因此,Swift接口没有dataSource
属性。它有方法dataSource()
和setDataSource()
。
所以,试试:
myTable.setDataSource(self)
答案 1 :(得分:0)
IBOutlet属性会自动变为弱隐式解包的最终设置为nil的选项。
您可以使用if let:
安全地直接访问该值if let table = myTable{
table.dataSource = self
}