2016-11-12 3 views
-1

辞書のプロパティを 'a.b.c'のようなプロパティに渡してプロパティ値を設定する必要があります。私はNSObject派生クラスの型の 'a'という名前のプロパティを持つルートオブジェクト 'obj'(NSObject派生)を持っています。そのクラスは、辞書var map = [String: CGFloat]()である 'b'という名前のプロパティを持ち、 'c'は辞書のキー名です。 obj.setValue(value, forKeyPath: 'a.b.c')を呼び出すと、辞書のプロパティが存在すると問題なく動作します。それができなければ自動的にそのプロパティを作成したいと思います。方法はありますか?パスからプロパティを作成する方法

+0

'obj'の種類は何ですか? –

+0

辞書はどのように定義されていますか? –

+1

追加例: –

答えて

0

setValue(_:forKeyPath:)は辞書方式ではなく、NSObjectメソッドです。

setValue(_:forUndefinedKey:)を実装し、自分でキーと値のペアを保存します。また、値を取得するためにvalue(forUndefinedKey:)を実装する必要があります。

+0

辞書は 'a.b.c'のパスにあるオブジェクト 'b'です。私の質問ビットをもっと更新しました –

+0

このような辞書は使用できません。 'setValue(_:forKeyPath:)'を使いたい場合は、 'setValue(_:forUndefinedKey:)'と 'value(forUndefinedKey:)'を実装するラッパーオブジェクトが必要です。このAPIを使用しないでください。 –

関連する問題