问题
If I'm using @synthesize foo;
, what's the difference between the following:
// message syntax
[myObj setFoo:5];
[myObj foo];
and
// dot syntax
myObj.foo = 5;
myObj.foo;
I like the consistency of the dot syntax but I don't know if it's doing something I should be I concerned about.
Any additional information would be a great help.
回答1:
There is no functional difference between using dot syntax and using message syntax.
I find that using message syntax is more consistent with the language as a whole and that dot syntax was just implemented as a convenience to programmers who were coming over from languages that used it (Java comes to mind).
All I ask is: Whichever one you choose, be consistent with it. Do not mix and match single property setters! (Multiple-argument setters are obviously exempt).
回答2:
They are the same.
The dot syntax is used to signify the access of @property
's which you can also acces via:
[myObject setValue: [NSNumber numberWithIntValue:5] forKey:@"foo"];
[myObject valueForKey:@"foo"];
But in essence the calls are the same.
来源:https://stackoverflow.com/questions/4259946/objective-c-message-syntax-vs-dot-syntax-whats-the-difference