CoreFoundataionコンテナを使用しようとしています。これは、プロパティリストにアクセスするときにとても便利な方法です。しかし、コンテナがネストされている場合は、内部コンテナにアクセスするのは本当に扱いにくいことに気付きます(たとえば、A CFArrayRefにはCFDictionaryRefが含まれていますが、値が別のCFArrayRefのキーがあります。CoreFoundationコンテナに効率的にアクセスできます。
CFArrayRef a
|----CFDictionaryRef b (assume it's at index 2 of a)
|----CFArrayRef c (assume, they key value is "array")
それでは、私たちはCFArrayRef を得たとしましょうそして、私はこのような何かを入力して、私が持っている
cをCFArrayRefにcfindexタグ0にある要素にアクセスする:
CFArrayGetValueAtIndex((CFArrayRef)CFDictionaryGetValue((CFDictionaryRef)CFArrayGetValueAtIndex(a, 2), CFSTR("array")), 0)
見えることを私にはたくさんのタイピングがあります。私の推測では、CoreFoundationはC++ではなくCに基づいているため、要素にアクセスするために "[]"のような演算子のオーバーロードは行われません。
入力にこのアクセスを容易にする方法がある(多分同様読み取るためには?)
私は、私は「[]」特定のCFTypeRefのため(のようなCFArrayRefオーバーロード演算子を検討していますC++を使用しています、 CFDictionaryRef、CFStringRef)、それが良い考えであるかどうかは分かりません。
おかげでスティックを言うと思います。私はそれを積極的に探していて、ほとんどあなたの答えで終わります。私は2を試しましたが、それは実際にはまず簡単だと思われましたが、私はそれを完全にC++に近代化するために別の辞書作成者クラスとプロキシオブジェクトを書く必要があると考えました。私はちょうどCスタイル(オプション1)で生きている。 –