【发布时间】:2017-07-19 12:29:12
【问题描述】:
我正在尝试了解 Swift 4 的最新添加 - better KVC。把这些简单的东西放在操场上什么都不会输出
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])
谁能解释一下?它仍然是越野车还是我只是在这里做一些愚蠢的事情?谢谢。
【问题讨论】:
-
当将“var keyPath = \Foo.name”更改为“let keyPath = \Foo.name”时,它有时会起作用。无论如何,这似乎不是预期的行为。
-
使用您的代码创建一个命令行工具项目,Swift 编译器会以
Command failed due to signal: Segmentation fault: 11停止。最好向 bugs.swift.org 发送错误报告。 -
是的,当我尝试在实际项目中使用新的 KVC 时,我遇到了很多“分段错误:11”。通常,此功能似乎已完成 50%。
-
这是一个编译器错误:SR-5384
标签: swift swift-playground kvc swift4