Swift 4新KVC
我正在努力了解Swift 4-的最新添加内容。把这些简单的东西放在操场上不会打印出任何东西Swift 4新KVC,swift,swift-playground,kvc,swift4,Swift,Swift Playground,Kvc,Swift4,我正在努力了解Swift 4-的最新添加内容。把这些简单的东西放在操场上不会打印出任何东西 class Foo { var name: String init(name: String) { self.name = name } } class Bar { var fooObject: Foo = Foo(name: "FooName") var keyPath = \Foo.name func output() {
class Foo {
var name: String
init(name: String) {
self.name = name
}
}
class Bar {
var fooObject: Foo = Foo(name: "FooName")
var keyPath = \Foo.name
func output() {
print(fooObject[keyPath: keyPath])
}
}
let bar = Bar()
bar.output()
尽管如此,如果您做了一个小更改并尝试输出以下内容,它仍然有效:
print(fooObject[keyPath: \Foo.name])
有人能解释一下吗?还是我在做傻事?谢谢。您需要更新到Xcode 9 beta 4,在那里它是固定的 当将“var keyPath=\Foo.name”更改为“let keyPath=\Foo.name”时,它有时会起作用。无论如何,这似乎不是预期的行为。使用您的代码创建命令行工具项目时,Swift编译器将停止执行
命令,因为信号:分段错误:11
。最好向bugs.swift.org发送一份bug报告。是的,我在实际项目中尝试使用新的KVC时遇到了很多“分段错误:11”。通常,此功能似乎已完成50%。这是一个编译器错误: