0

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

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

最后一行代码是编译错误,我不明白。最重要的是,根据 XCode 的心情,我会为这行完全相同的代码收到几条不同的编译错误消息。我看到了以下编译错误:

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

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

  1. 无法将表达式的类型“字符串”转换为类型“字符串?!”

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

  1. 找不到成员“convertFromStringInterpolationSegment”

String?!如果我声明一个类型为它的变量,那就够搞笑了Cannot convert the expression's type 'String?!' to type 'String?!'

我不明白发生了什么事。这是一个错误吗?

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

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

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

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

4

1 回答 1

0

尽管有可怕的错误消息,我终于让它工作了。问题是headerCell输入为AnyObject,我不得不强制转换它。第二个问题是,在快速土地上,它是一种属性,而不是一种方法。

这终于奏效了:

var tc = NSTableColumn(identifier: "mycolumn") 
let hc = column1.headerCell as NSTableHeaderCell
hc.stringValue = "foo"
于 2015-01-04T05:56:24.233 回答