問題タブ [key-value-coding]

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.

0 投票する
1 に答える
601 参照

objective-c - -setValue:forKey:vs "object.var=..."を使用する

これらの2行のコードの違いは、2行目はKVOに準拠しており、1行目は準拠していないということです。

私が尋ねている理由は、500を超えるオブジェクトの60の属性を更新する必要があるためです。少数の属性を超えるKVO通知は必要ありません。

UITableViewにNSFecthedResultsControllerを使用していますが、セルで過度のsetNeedDisplayをトリガーしたくありません。

0 投票する
2 に答える
78 参照

.net - 双方向変換データ用の.NETコンテナ?

高速アクセスのためにメモリに含める必要のある変換テーブルがあります。これまで私は単純なものを使用してHashtableいました。キーは内部コードであり、値は外部コードやその他のメタデータを保持するオブジェクトでした。

次に、逆ルックアップを行う必要があります。つまり、外部コードに基づいて内部コードを取得する必要があります。私は次のオプションしか思いつかなかった:

  1. このルックアップ用に別のコンテナを用意します。冗長性を防ぐために、値として内部コードのみを含むハッシュテーブルを用意します。
  2. 現在使用しているのと同じコンテナを使用し、外部コードをキーとして使用してこれらのオブジェクトを再度保存します(衝突を防ぐためにプレフィックスを付けます)。
  3. キーを使用してデータをプルするのではなく、同じコンテナーに含まれる値を反復処理して、要求されたオブジェクト(O(n)、同じメモリ使用量)を見つけます。

コンテナは遅延読み込みされているため、オプション1と2は通常、最悪のシナリオでは実行されません。

誰か考えますか?そのために使用できる効率的なコンテナがあることを教えてください。

* 編集 *

GCのフレームワークであり、2つの変換配列(ディクショナリ)が必要であるという事実を受け入れると、次のコード行は、実際には1つのオブジェクトのみをメモリに格納し、次に2つの異なるポインタの下にそのオブジェクトへの2つのポインタを格納することを意味します。ハッシュ化されたセル?

Itamar。

0 投票する
3 に答える
5340 参照

cocoa - NSManagedObject サブクラスと setValuesForKeysWithDictionary:

NSManagedObject以下を使用してサブクラスを初期化しています。

もちろん、例外をスローする必要がある未定義のキーも故意に与えています。

だから、私は実装しました:

キーが定義されていない場合は、正しいキーにマップします。

ただし、私の実装は呼び出されず、代わりにNSManagedObjectの実装が使用され、例外スローされます。

のサブクラス実装をsetValuesForKeysWithDictionary:使用できない動作 (またはバグ) はありますか?NSManagedObjectsetValue:forUndefinedKey:

要求に応じてコードを追加しますが、呼び出されない既存のメソッドを実装しているだけなので、それがどれほど役立つかわかりません:

文脈で:

Companyサブクラス (呼び出されない) :

0 投票する
1 に答える
114 参照

cocoa - 基準で選ぶKVC

コア データから選択したオブジェクトの配列があります。条件に対応するオブジェクトのこのセットのサブセットから選択する必要があります。どうやってするの?

0 投票する
4 に答える
18816 参照

iphone - キー値コーディングを使用して、オブジェクトのキーが存在するかどうかをどのように確認しますか?

iPhone SDK でオブジェクトに書き込み可能な @property があるかどうかをテストしたいと思います。

これを行う 1 つの可能な方法は、-valueForKey: メソッドをチェックすることですが、それはかなり洗練されていないようです!

例:

これを行うより良い方法はありますか?

0 投票する
2 に答える
7747 参照

objective-c - プロパティの名前を使用して、Objective-C プロパティに動的にアクセスする

オブジェクトのプロパティの文字列名を知っています。文字列を使用してそのプロパティを取得および設定するにはどうすればよいですか?

0 投票する
5 に答える
8325 参照

javascript - Javascript オブジェクトのキー値のコーディング。ネストされた値を動的に設定する

オブジェクトを使用して基本的なキー値のコーディングを行うことができる小さなライブラリに取り組んでいます。次のオブジェクトがあるとします。

そして、次の JavaScript 関数があります。

そして使用中:

これは機能しますが、を使用せずに上記を達成したいと思いevalます。これは可能ですか、それともeval最善の方法ですか?

編集:

少なくともパスの深さ-1については、設定している値が存在すると想定できることに注意してください。既存のオブジェクトの値の設定についてもっと心配しています。

0 投票する
4 に答える
1098 参照

cocoa - 配列から単一のオブジェクトにバインドするCocoa

私は以前、この質問を関連するスレッドにコメントとして投稿し、簡単だと思っていました。そのスレッドはここにあります:

アレイ コントローラ内の特定の項目への Cocoa バインディング

質問は、objective-c とココアを試して学習するために構築しているゲームに関連しています (ここで詳しく説明します)。テキサス ホールデム ポーカーのように考えれば十分です。1 つのサーバーがゲーム情報を保持し、可変数のクライアント (常に複数) からの入力を管理します。ココア バインディングを介して、IB の配列コントローラーを使用して、サーバー上の配列に格納されているゲームの公開情報を各プレイヤーに表示します。テーブル上の 5 枚のカードがサーバー上の NSArray に格納され、各クライアントの NSArrayController の content フィールドにバインドされていると考えてください。

この部分は、魔法のようにうまく機能します。ただし、各プレイヤーは非公開にする必要がある 2 枚のカードを持っています。各クライアントは、その特定のプレーヤーに配られたものに応じて、異なるカードを表示する必要があります。(実際に起こっているのは、プレイヤー オブジェクトの配列にバインドしているためです。

すべてのカードが同じアレイに格納されていると想像してください)。だから私の質問は、配列コントローラーから単一のオブジェクトへのバインディングをどのように設定するのですか (または、他のコントローラーが必要ですか)? つまり、Players 配列の 1 人のプレーヤーにバインドするにはどうすればよいでしょうか?」

0 投票する
2 に答える
2780 参照

iphone - コア データとランタイム キー値のコーディング

キー値コーディングを使用すると、実行時に NSManagedObject に未定義の属性を設定でき、例外はスローされないという印象を受けましたが、データ モデルにないモデルにアタッチされたオブジェクトを保持する方法になるでしょう。

たとえば、「バー」属性を持たない Foo オブジェクトがあります。実行時に、次のように設定できると思いました。

その後、ManagedObjectContext が後でクエリを実行するまでこの値を保持することを期待しますが、Managed Object Context を保存してもバーの値は保存されません。

このコードを実行すると、有名なエラーがポップアップし続けます。

..だから私の質問は: 私は何を得ていないか、間違っているのですか?

0 投票する
2 に答える
777 参照

objective-c - Objective C -- オブジェクトがそれ自体を返すようにするキーパスはありますか?

クラス Foo のオブジェクト foo が与えられた場合、次のことを行います。

myObj を foo に等しくします。

Foo のカテゴリを定義せずにこれを行う方法はありますか?