【问题标题】:Swift 4 new KVCSwift 4 新的 KVC
【发布时间】: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


【解决方案1】:

您需要更新到已修复的 Xcode 9 beta 4。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多