問題タブ [kvc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - KVC と高速列挙
次のうちどれがより高速で、その理由は?
また
cocoa - @avg コレクション演算子を使用した NSPredicate のフォーマット文字列
NSPredicate を構築して、たとえば 5 より大きい平均スコアで次の配列をフィルタリングできるようにする方法はありますか?
さまざまな組み合わせを試しましたが、これが最も有望に思えました (キー パス@avg.self
が通常の KVC を介して配列内の数値の平均値を取得するように機能することを考えると)。
私が得る実行時エラーは次のとおりです。
NSUnknownKeyException'、理由: '[<__NSArrayI 0x10011b7c0> valueForUndefinedKey:]: このクラスは、キー avg のキー値コーディングに準拠していません。
この述語文字列は機能します: scores.@count > 3
、したがって、少なくともそのコレクション演算子は述語で使用できます。
objective-c - KVC と KVO が問題になるのはいつですか? いつも?
これは、Objective-C のほぼ新しいスーパーセットのように見えます。ドット表記とディレクティブ (例:studentsInClassA.@union.studentsInClassB.pets(...)
およびコンプライアンス構文 (例: ) が混在しています) の組み合わせが使用されています-replaceObjectIn<Key>AtIndex:withObject:
。KVC の大部分は単純なアクセサ メソッドに似ており、とにかく合成できるようです。ただし、KVObserving は MVC アプリをより簡単にするようです。意見?
ios - KVC が機能していません
iOSで非常に単純なKVCを学習しようとしています。
.m ファイル内
主に
コンソールで「 tunvir 」を期待していますが、null が返されます。ありがとう
ios - KVC を使用して NSArray 内の NSValue 変換された CGPoints の最小/最大座標を取得する
最近、いくつかのドキュメントといくつかのブログ エントリを読み、Key-Value Coding
非常に役立つことがわかりました。自分の場合に利用したいのですが、今のところ成功していません。
私の場合、NSMutableArray
含む がにCGPoint
変換されていNSValue
ます。このデータ配列に多くのポイントを追加し、x と y の最小値/最大値を取得したいと考えています。例えば:
これまでに2つのアプローチがあります。1 つ目は、これら 4 つの値をクラス インスタンス変数に格納し、新しいオブジェクトが追加されたときにそれらの変数と比較し、必要に応じて更新することです。2 つ目は、極値を見つけるために for ループを使用しますが、このアプローチは非効率的です。
可能であれば、KVC を使用してこのタスクを実行したいと考えています。これは、私が持っているソリューションよりも一般的なソリューションになると思います。将来的には、配列からいくつかのオブジェクトを削除する必要が生じる可能性があります。これにより、最初のアプローチが適用できなくなり、for ループだけが残ります。
いくつかのキー パス、つまり を使用しようとしまし@"@max.x"
た@"@max.position.x"
が、取得したのはNSUnknownKeyException
.
cocoa - Cocoa バインディングが KVC だけでなく、KVC と KVO の両方を使用するのはなぜですか?
Cocoa と Objective-C の初心者として、私は KVC と KVO について基本的な理解を持っています。ただし、Cocoa Bindings に関しては (「Cocoa Bindings Programming Topics」というタイトルの Apple ドキュメントで説明されているように、図 8 ~ 10 を参照してください)、KVO で十分と思われるのに、なぜ KVC と KVO の両方を使用して描かれているのかわかりません。KVO の ObserveValueForKeyPath:ofObject:change:context は古い値と新しい値を提供できるのに、なぜ KVC メカニズムが必要なのですか? KVO がどのようにオブジェクトを分離するかはわかりますが、KVC もそうです。
Apple が提供する例 (図 8 ~ 10) は、「温度」、コントローラー オブジェクト、および温度プロパティを持つモデル オブジェクトを設定および表示するためのユーザー操作を視覚的に表現して許可するスライダーとテキスト入力コントロールを含むウィンドウを示しています。別の言い方をすれば、私の質問は、なぜ 2 つのコントロールとコントローラーの間で双方向の KVO 関係 (それぞれがオブザーバーとして互いに登録する) と、モデル オブジェクトとコントローラーの間の双方向の KVO 関係を持たないのかということです。なぜ KVC が必要なのですか?