Was ist die Konvention/Regel/Präferenz/Diktat über wo private Instanzvariablen deklariert werden sollten und warum?Wo verstecken sich Ihre Privates in Objective-C
// someClass.h
@interface someClass : NSObject {
@private
// Here in the class declaration?
}
// ...
@end
// someClass.m
@interface someClass() {
// Here in the class extension? This seems to be obj-c's version
// of the C++ Pimpl idiom.
}
@end
@implementation someClass {
// Here in the class definition? BTW, what's the default scope here?
// Seems like it should be @private. I haven't been able to find much
// documentation about this declaration block.
}
// ...
@end
Kann jemand die entsprechende Verwendung dieser drei Abschnitte kommentieren oder auf eine gute Webressource verweisen? Vielen Dank!
+1 für den Titel. – IronMan84
Der Titel ist ein bisschen frech, aber ich bin ernst mit der Frage. Ich konnte keine gründliche Dokumentation zu diesem Thema finden. Nichts, was ich aus Büchern (Kochan, Sadun, Ali) und Apple Doc gesehen habe, gibt eine gründliche und umfassende Diskussion darüber. – Phil
Der Standardbereich von Ivars im Block '@ implementation' ist' @ private'. Dies ist jedoch mit ziemlicher Sicherheit irrelevant, denn wenn Sie nicht mehrere Klassen in dieselbe '.m'-Datei schreiben, können keine anderen Klassen * die * Ivars * sehen, was eine Voraussetzung für den Zugriff ist. –