Search code examples
objective-cios6xcode4.5

What name does the auto-generated ivar take when I just declare a property in XCode 4.5 onwards?


Earlier I was on XCode 4.2 for a long time on Snow Leopard for a long time. I have made a straight jump to Mountain Lion with XCode 4.5 on with iOS 6 SDK and ARC.

A lot has changed for me. Just wanted to know, whether the naming style of default variables has changed ?

because in older XCode if I wont declare an ivar myself, it would take the same name as the property.

In 4.5, I declared a property (no synthesize required anymore!).

In the overidden setter, I am trying to use the variable as the same name as the property, say abc.

but XCode is not recognizing it and giving me suggestions of _abc !

Does the auto-generated ivar starts with _ now ?


Solution

  • The automatically generated @synthesize statement uses instance variables prepended with an underscore:

    @synthesize abc = _abc;
    

    But an explicit @synthesize statement without instance variable

    @synthesize abc;
    

    is still equivalent to

    @synthesize abc = abc;
    

    for compatibility with older Xcode versions.