Има ли някаква цел тази конвенция?
Защо иварите от клас Cocoa-Touch имат водещ знак за подчертаване?
Отговори (2)
Apple обича да използва долна черта, за да означава „частен“, според Указания за кодиране за какао:
Избягвайте използването на знака за долна черта като префикс, означаващ лично, особено в методите. Apple си запазва използването на тази конвенция. Използването от трети страни може да доведе до сблъсъци в пространството на имената; те биха могли несъзнателно да заменят съществуващ частен метод с един от тях, с катастрофални последици.
Имената на методите, започващи с долна черта, са запазени според Езикът за програмиране Objective-C (което означава, че те са запазени дори ако не използвате Cocoa, вероятно):
Имената на методи, започващи с „_“, един знак за долна черта, са запазени за използване от Apple.
Освен това конвенцията на C/C++ е, че водещите долни черти (често) са запазени за имплементацията. Много хора тълкуват това погрешно и използват _ за всичко "лично"; което води до разпространението на _FooLog() извиквания в голяма част от нашата кодова база, въпреки че извиква недефинирано поведение.
Единствената причина да го направите е да обезсърчите директния достъп до ivar във вашия собствен клас. Предотвратете достъпа на ivar от други класове с @private
.
Има някои разработчици, които използват следната конвенция за "скриване" там ivars по следния метод:
@interface
@private
NSString *_myString
@property (nonatomic, retain) NSString *myString;
@implementation
@synthesize myString = _myString.
това, което прави, е да забрани директния достъп до ivar с принудителен достъп през свойството myString. Това е начин за скриване на вътрешността на вашия клас и спазване на обектно-ориентирания принцип на капсулиране.
_myString
.
- person Marcus S. Zarra; 23.08.2010
myString
и self.myString
.
- person Stefan Arentz; 23.08.2010