如何在 swift 中设置 NSTableColumn headerCell stringValue?
How do I set an NSTableColumn headerCell stringValue in swift?
文档使它看起来就像这样简单:
var tc = NSTableColumn(identifier: "mycolumn")
tc.headerCell.stStringValue("foo")
最后一行代码是编译错误,我看不懂。最重要的是,根据 XCode 的心情,我收到了针对同一行代码的几个不同的编译错误消息。我看到了以下编译错误:
- AnyObject 没有名为 'stStringValue'
的成员
- 无法将表达式的类型 'NSString' 转换为类型 'StringLiteralConvertible'
我在尝试设置变量并将其放入其中时得到了这个信息:
- 无法将表达式的类型 'String' 转换为类型 'String?!'
我在尝试 "foo \(bar)"
变体时得到了这个:
- 找不到成员'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"
文档使它看起来就像这样简单:
var tc = NSTableColumn(identifier: "mycolumn")
tc.headerCell.stStringValue("foo")
最后一行代码是编译错误,我看不懂。最重要的是,根据 XCode 的心情,我收到了针对同一行代码的几个不同的编译错误消息。我看到了以下编译错误:
- AnyObject 没有名为 'stStringValue' 的成员
- 无法将表达式的类型 'NSString' 转换为类型 'StringLiteralConvertible'
我在尝试设置变量并将其放入其中时得到了这个信息:
- 无法将表达式的类型 'String' 转换为类型 'String?!'
我在尝试 "foo \(bar)"
变体时得到了这个:
- 找不到成员'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"