Le 10 avr. 2012 à 23:40, Greg Parker a écrit :

> On Apr 10, 2012, at 1:49 PM, Rick Mann <rm...@latencyzero.com> wrote:
>> Are there functions provided in the Objective-C runtime to convert property 
>> names? For example, say I have a key name like "fooKey", and I want to get 
>> "FooKey", or the setter name "setFooKey" from it. I could do the name 
>> munging myself, but I wonder if there aren't edge cases. For example, 
>> "setURL" should covert to "URL", not "uRL".
>> 
>> In my particular case, I'm trying to implement functionality like 
>> +keyPathsForValuesAffecting<Key>. It takes a key name (usually something 
>> that starts with a lower-case letter) and changes it to start with an 
>> upper-case letter, then appends it to "keyPathsForValuesAffecting" to create 
>> the selector name.
>> 
>> Are those conversion methods provided anywhere? I looked through the Obj-C 
>> runtime and didn't see anything, but I didn't read every single page.
> 
> The code to derive the default setter and getter method names from a property 
> name is in the compiler somewhere.
> 
> The runtime can tell you the setter and getter and ivar names for a 
> particular class's property, but knows nothing about key paths or name to 
> name conversion.
> 


Note that @property do no have the same naming convention than KVC.
For instance, if you declare the foo getter -isFoo that returns a BOOL value, 
it is valid to access it using -valueForKey:@"foo", but it will not work if you 
try to get it using the property's dot syntax.

-- Jean-Daniel





_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to