Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 4新KVC_Swift_Swift Playground_Kvc_Swift4 - Fatal编程技术网

Swift 4新KVC

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() {

我正在努力了解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() {
        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%。这是一个编译器错误: