如何在 swift 中设置 NSTableColumn headerCell stringValue?

How do I set an NSTableColumn headerCell stringValue in swift?

文档使它看起来就像这样简单:

var tc = NSTableColumn(identifier: "mycolumn")
tc.headerCell.stStringValue("foo")

最后一行代码是编译错误,我看不懂。最重要的是,根据 XCode 的心情,我收到了针对同一行代码的几个不同的编译错误消息。我看到了以下编译错误:

  1. AnyObject 没有名为 'stStringValue'
  2. 的成员
  3. 无法将表达式的类型 'NSString' 转换为类型 'StringLiteralConvertible'

我在尝试设置变量并将其放入其中时得到了这个信息:

  1. 无法将表达式的类型 'String' 转换为类型 'String?!'

我在尝试 "foo \(bar)" 变体时得到了这个:

  1. 找不到成员'convertFromStringInterpolationSegment'

如果我声明一个类型为 String?! 的变量,它会说 Cannot convert the expression's type 'String?!' to type 'String?!'

我不明白这是怎么回事。这是一个错误吗?

如果我在操场上尝试这个,操场实际上想要用一个额外的参数自动完成,这种格式:

tc.headerCell.setStringValue("foo", resolvingEntities: false)

这没有编译时错误,但在运行时会导致段错误。这种格式也没有在文档中。

我真的不知道发生了什么,错误消息也没有帮助。

尽管出现了可怕的错误消息,但我终于让它工作了。问题是 headerCell 被输入为 AnyObject,我不得不强制转换它。第二个问题是在 swift land 中它是一个 属性,而不是一个方法。

终于成功了:

var tc = NSTableColumn(identifier: "mycolumn") 
let hc = column1.headerCell as NSTableHeaderCell
hc.stringValue = "foo"