2017-07-19 5 views
1

スウィフト4 - better KVCへの最新の追加を理解しようとしています。あなたは小さな変更を加えると、出力には、このしようとした場合、それは動作しますが、が、運動場で、このシンプルなものを持つことは、何もスウィフト4新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]) 

を誰かが説明できますか?それはまだバギーですか、私はちょうどここで何か愚かなことをしていますか?ありがとう。

+0

「var keyPath = \ Foo.name」を「let keyPath = \ Foo.name」に変更すると、時々動作します。とにかく期待された動作のようには思われません。 – Lausbert

+1

コードでコマンドラインツールプロジェクトを作成すると、Swiftコンパイラは** 'シグナルによるコマンドが失敗しました:セグメンテーションフォルト:11' **で停止します。バグレポートをbugs.swift.orgに送ってください。 – OOPer

+0

実際のプロジェクトの中で新しいKVCを試してみると、「Segmentation fault:11」というものがたくさんあります。一般に、この機能は50%完了したようです。 –

答えて

0

Xcode 9 Beta 4では正常に動作します。固定されているように見えます。

関連する問題