問題タブ [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 投票する
8 に答える
28816 参照

iphone - NSUnknownKeyException setValue:forUndefinedKey: で iPhone アプリがクラッシュする

私は初めての iPhone アプリを書いているので、デバッグの方法についてはまだよくわかっていません。基本的に、私のアプリは画像を表示し、タッチすると短い音を出します。XCode でプロジェクトをコンパイルおよびビルドすると、すべてが正常にビルドされますが、アプリを iPhone シミュレーターで実行するとクラッシュします。

次のエラーが表示されます。

kramerImage は、背景に使用している画像です。

NSUnknownKeyException が何を意味するのか、またはクラスがキーのキー値コーディングに準拠していない理由がわかりません。

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

cocoa - Cocoa での KVO/Bindings 準拠のブリッジ パターンの実装

ブリッジオブジェクトが任意の他の NSObject インスタンスの kvo/bindings 準拠のドロップインとして機能する単純なオブジェクトブリッジをココアに実装しようとしています。

ここに私の問題があります(以下のコードの詳細):

ブリッジ オブジェクトは、name という名前の NSString* プロパティとAddress* プロパティaddressを使用して、Person-Object のドロップインとして機能します。Bridge の keyPath の「名前」または「アドレス」へのバインドはうまく機能します。ブリッジの keyPath "address.street" に何らかのオブジェクトをバインドし、新しい Address-Object が Person のaddressプロパティに設定されると、問題が発生します。その結果、次のような KVO 関連の例外が発生します。

Cannot remove an observer <NSKeyValueObservance 0x126b00> for the key path "street" from <Address 0x12f1d0> because it is not registered as an observer

これは、ブリッジが「address」プロパティの変更を認識し、willChangeValueForKeyPath/didChangeValueForKeyPath タプルを発行した場合でも発生します。

以下のコードは問題を引き起こします。ファイル「BridgeDemo.m」に保存し、コンパイルして実行できる自己完結型の目的の C コードです。

この問題の解決策を知っているか、同じ問題を解決するためのより良いアプローチを提供してくれるなら、私はとても幸せなプログラマーになります!

BridgeDemo.m:

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

cocoa - Cocoa バインディングの問題。バインドされたテーブルの列にデータが表示されず、コンソールにエラーが表示されない

Cocoa プロジェクトを手動で同期されたインターフェイス モデルからバインディング モデルに変換するのに問題があるため、インターフェイスのグルー コードについて心配する必要はありません。

CocoaDevCentral Cocoa Bindings チュートリアルに従って、すべての基本をカバーしていることを確認しましたが、正しく動作しません。マスター/ディテール インターフェースを使用していますが、インターフェースのマスター部分を正しく動作させることさえできません。チュートリアルに示されている方法と同様のバインディング モデルを設定したにもかかわらず、マスター カラムにデータが表示されません。すべてのコントローラーとオブジェクトが-(id)key-(void)setKey:(id)keyメソッドをバインドに準拠するように変更し、nib に ControllerAlias オブジェクトを作成し、それをコントローラーに接続し、ControllerAlias が接続するクラスの NSMutableArrays の 1 つにバインドする NSArrayController を作成しました。配列内に含まれるオブジェクトの型を調べてから、テーブルの列を NSArrayController にバインドしました。

コンソールにエラーNSBindingDebugLogLevelはまったく表示されず、1 に設定してもエラーは発生しません。これは、問題が何であるかを理解するのに役立ちます。

物事が正しく機能していることを確認するために私が考えることができる唯一のことは、NSArrayController に接続する NSMutableArray に実際に何かが含まれていることを確認することです。

助言がありますか?Cocoa バインディングには他に、チェックすべき典型的な落とし穴はありますか?

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

cocoa - 奇妙なバインディングの問題

一部のデータを表すためにバインドを使用してブラウザー ビューを使用しようとしていますが、次のエラー メッセージが表示されます。

NSLog の出力に示されているように、これawakeFromNibはアプリ コントローラーで が呼び出される前に発生し、BillingCode が displayString に対して KVC に準拠していることを知っていても発生します。

ツリー コントローラー -> 属性 -> オブジェクト コントローラーで "クラス" に設定された値に関連しているようです。そのクラスの名前を変更すると、エラー メッセージの名前が変更されます。奇妙なことに、呼び出されるまでオブジェクトを追加しないため、その時点でコンテンツ配列にオブジェクトがあってはなりませんawakeFromNib

0 投票する
7 に答える
35273 参照

cocoa - 挿入/削除のために NSMutableArray を観察する

クラスには、( 経由で) 合成されたアクセサーを持つ NSMutableArray 型のプロパティ (およびインスタンス var) があります@property。以下を使用してこの配列を観察する場合:

そして、次のように配列にオブジェクトを挿入します。

observeValueForKeyPath... 通知は送信されません。ただし、以下は適切な通知を送信します。

これは、mutableArrayValueForKeyオブザーバーへの通知を処理するプロキシ オブジェクトを返すためです。

しかし、合成されたアクセサーは、そのようなプロキシ オブジェクトを自動的に返すべきではありませんか? これを回避する適切な方法は何ですか? を呼び出すだけのカスタム アクセサーを作成する必要があります[super mutableArrayValueForKey...]か?

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

cocoa - ココアで大文字と小文字を区別しない KVC?

私が使用しようと考えている特定のアプローチに関するフィードバックをいただければ幸いです。シナリオは以下。

x 座標と y 座標、高さ、幅など、多数のプロパティを持つオブジェクト (MObject と呼びましょう) があります。プロパティは、KVC ガイドライン (MObject.x、MObject.height など) に従って名前が付けられます。次のタスクは、この MObject を記述した XML ファイルを読み込むことです。残念ながら、XML 要素の名前は、X と Y、高さと幅 (大文字に注意してください) とは異なります。

XML 要素が MObject のプロパティと一致することが理想的です。この場合、KVC を使用して、コード全体を回避できます。

これにアプローチする 1 つの方法は、大文字と小文字を区別しないキーを使用することです。どこから始めますか?他のより良い解決策はありますか?

提案は大歓迎です。

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

cocoa-touch - キーと値のペアを iPhone の UIView にアタッチするにはどうすればよいですか?

iPhone の開発を始めたとき、UIView にキーと値のペアをアタッチできることをどこかで読みました。不必要なサブクラス化を防ぐために、すべての UIView を辞書として使用して、それらに添付したいデータを保存できることを理解しました。ただし、参照を見つけるためにあらゆる場所を検索し、自分で動作を実装しようとしましたが無駄でした。

私は次のようなことを試しました:

しかし、これはうまくいかないようです。上記のコードが行うことは、値 @"hello" をプロパティ @"world" に割り当てようとしていると思いますが、これは私が望んでいるものではありません。

私が達成しようとしていることは可能ですか?

ここで何か助けていただければ幸いです。

ありがとう!

ニック。

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

cocoa - KVCを使用してSQLを生成しますか?

KVCを使用してSQLを生成することは可能かどうか疑問に思います。私は軽いORMを行っています。私はこのようなことをしたい(擬似コード):

そして取得:

これはObjective-Cで可能ですか?

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

cocoa - Key-Value-Cocoa での対多関係の観察

NSMutableArray で key-value-observing を機能させようとしています。以下は、監視対象クラスである MyObservee の .h ファイルです。

クラス MyObserver は、observeValueForKeyPath:ofObject:change:context: を実装します。オブザーバーを追加する方法は次のとおりです。

addObject: メッセージが someArray キー パスの変更としてトリガーされないのはなぜですか? ここで私が完全に理解していない何かがあると感じています。