【发布时间】:2014-06-18 13:31:23
【问题描述】:
我想在我的 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 是否正确?或者我应该将其定义为可选变量还是隐式展开的可选变量?
【问题讨论】:
-
Err 为什么投反对票???
-
你在哪里分配
myTable.dataSource = self?在self尚未初始化的几个位置,您无法访问self -
另外,您当前的声明是正确的,
@IBOutlet隐含地使您的变量成为implicitly unwrapped optional -
我在
awakeFromNib()中分配了它,这是我现在正在阅读的一本书所做的(尽管它使用的是Objective-C 和Xcode 4,而不是Swift 和Xcode 6 beta)... -
顺便说一句,当我将代码移到
awakeFromNib()之外时,错误消息变为Expected declaration,代码仍然无法编译。