On Apr 30, 2009, at 5:29 PM, Ulai Beekam wrote:


Because just adding a key to a dictionary does not make it key-value- coding compliant with respect to that key. KVC is needed for key paths like that to work.


----------------------------------------
From: [email protected]
To: [email protected]
Date: Thu, 30 Apr 2009 19:00:51 -0500
Subject: valueForKeyPath

Folks;

I have a mutable dictionary 'myPerson' which has a key=@"address".
The object stored at @"address" is another mutable dictionary.

someCity = [myPerson valueForKeyPath:@"address.city"] --> nil

someCity = [[myPerson valueForKey:@"address"] valueForKey:@"city"] --
expected value

Why does -valueForKeyPath not work in this circumstance?

Steve

Check it:

$ irb
>> require 'osx/cocoa'
=> true
>> include OSX
=> Object
>> d1 = NSMutableDictionary.dictionaryWithObject_forKey("test", "foo")
=> #<NSCFDictionary {#<NSCFString "foo">=>#<NSCFString "test">}>
>> d2 = NSMutableDictionary.dictionaryWithObject_forKey(d1, "bar")
=> #<NSCFDictionary {#<NSCFString "bar">=>#<NSCFDictionary {#<NSCFString "foo">=>#<NSCFString "test">}>}>
>> d2.valueForKeyPath("bar")
=> #<NSCFDictionary {#<NSCFString "foo">=>#<NSCFString "test">}>
>> d2.valueForKeyPath("bar.foo")
=> #<NSCFString "test">

Appears to work just fine. Are you sure something else isn't different than you expect?

-> jp

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to