Macos 如何在swift中设置NSTableColumn headerCell stringValue?
文档使它看起来像这样简单:Macos 如何在swift中设置NSTableColumn headerCell stringValue?,macos,cocoa,swift,nstablecolumn,Macos,Cocoa,Swift,Nstablecolumn,文档使它看起来像这样简单: var tc = NSTableColumn(identifier: "mycolumn") tc.headerCell.stStringValue("foo") 最后一行代码是编译错误,我不理解。最重要的是,对于这一行完全相同的代码,我得到了两条不同的编译错误消息,这取决于XCode的心情。我看到了以下编译错误: AnyObject没有名为“stStringValue”的成员 无法将表达式的类型“NSString”转换为类型“StringLiteralConver
var tc = NSTableColumn(identifier: "mycolumn")
tc.headerCell.stStringValue("foo")
最后一行代码是编译错误,我不理解。最重要的是,对于这一行完全相同的代码,我得到了两条不同的编译错误消息,这取决于XCode的心情。我看到了以下编译错误:
AnyObject没有名为“stStringValue”的成员
无法将表达式的类型“NSString”转换为类型“StringLiteralConverable”
我在尝试设置变量并将其放入其中时得到:
无法将表达式的类型“String”转换为类型“String?!”
当我尝试foo\bar变体时,我得到了以下结果:
找不到成员“convertFromStringInterpolationSegment”
如果我用String类型声明一个变量就够搞笑的了?!它说它无法转换表达式的类型“String?!”键入“字符串?!”
我不明白发生了什么事。这是虫子吗
如果我在操场上尝试此操作,操场实际上希望使用一个额外的参数自动完成,格式如下:
tc.headerCell.setStringValue("foo", resolvingEntities: false)
这没有编译时错误,但会在运行时导致seg错误。此格式也不在文档中
我真的不知道发生了什么,错误消息也帮不上忙。尽管有可怕的错误消息,我最终还是让它工作了。问题是headerCell被键入为AnyObject,我不得不强制转换它。第二个问题是,在swift land,这是一种财产,而不是一种方法 这最终奏效了:
var tc = NSTableColumn(identifier: "mycolumn")
let hc = column1.headerCell as NSTableHeaderCell
hc.stringValue = "foo"