Re: Converting between property names?
Re: Converting between property names?
- Subject: Re: Converting between property names?
- From: Jean-Daniel Dupas <email@hidden>
- Date: Wed, 11 Apr 2012 02:12:11 +0200
Le 10 avr. 2012 à 23:40, Greg Parker a écrit :
> On Apr 10, 2012, at 1:49 PM, Rick Mann <email@hidden> 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 (email@hidden)
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:
This email sent to email@hidden