2010-11-24 1 views
6

シングルキーとキーパスの違いは何ですか?

[self setValue:[NSNumber numberWithInt:intValue] forKey:@"myObject.value"]; 

答えは「もちろん、それはキーのパスは、単一のキーではない」ということでしたthisページに示すように、それは何を意味するのでしょうか?

+1

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Concepts/BasicPrinciples.html –

+1

ありがとうございますが、答えとして投稿してください – LolaRun

答えて

10

キーは、オブジェクトのプロパティを識別する文字列です。キーのパスは、ドットで区切られたキーのリストで、ネストされたプロパティを識別するために使用されます。

例を示します。

id address = [person valueForKey:@"address"]; 
id town = [address valueForKey:@"town"]; 

またはキーパスを使用して1つのステップで:

id town = [person valueForKeyPath:@"address.town"]; 

したオブジェクトpersonは、自身があなたがキーを使用して2つのステップで町の値を得ることができるtown性質を持つプロパティaddressがある場合、詳細については、Key-Value CodingのAppleのドキュメントをご覧ください。

+0

キーは格納されているオブジェクトのプロパティの名前でなければなりませんか? もしそうなら、代替案は何ですか?たとえば、javaやC#の辞書やハッシュテーブルのようなものですか?キーは任意の文字列またはオブジェクトにできますか? – LolaRun

+1

@ LolaRunはい、キーはプロパティ名でなければなりません。また、辞書の場合は、キーがキーです。 [私の答え](http://stackoverflow.com/a/20015365/642706)のサンプルコードを別の質問に参照してください:[Objective-Cのネストされた辞書値に直接アクセスする](http://stackoverflow.com/questions/4317760) /直接アクセスネストされた辞書の値 - 客観的 - c/20015365#20015365) –

+0

素晴らしい例と説明。 –

関連する問題