Swift 4 新的 KVC
Posted
技术标签:
【中文标题】Swift 4 新的 KVC【英文标题】:Swift 4 new 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
【参考方案1】:
您需要更新到已修复的 Xcode 9 beta 4。
【讨论】:
以上是关于Swift 4 新的 KVC的主要内容,如果未能解决你的问题,请参考以下文章
使用Swift 4.1向Heroku部署Vapor 3 beta应用程序的问题