问题
I wrote a setter method -
- (void)setMyProp:(MyProp *)myProp{
_myProp = myProp;
}
How is underscore put before property name is working? I know this question has been asked, but they are about user setting property name to _myProp, some convention. I am not synthesizing or changing the property name. How this underscore is working?
回答1:
If you are using latest version of LLVM, then the compiler creates @synthesize for you with the syntax:
@synthesize myProp=_myProp;
Therefore you are able to use _myprop even though you have not synthesized explicitly.
*SideNote: _myProp
makes you access the property directly, while self.myProp
will call accessor. Always use self.myProp
来源:https://stackoverflow.com/questions/15255226/underscore-before-property-name-in-setter