Co to jest konwencja/reguła/preferencja/dyktat o tym, gdzie należy zadeklarować zmienne prywatnych instancji i dlaczego?Gdzie ukryć swoich współlokatorów w celu 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
ktoś może wypowiedzieć się na temat właściwego stosowania tych trzech sekcji lub punktu do dobrej zasobu sieciowego na ten temat? Dzięki!
+1 za tytuł. – IronMan84
Tytuł jest nieco bezczelny, ale poważnie podchodzę do tego pytania. Nie byłem w stanie znaleźć dokładnej dokumentacji na ten temat. Nic, co widziałem z książek (Kochan, Sadun, Ali) i doc do Apple'a, nie prowadzi do gruntownej dyskusji na ten temat. – Phil
Domyślny zakres znaków iv w bloku '@ implementation' to' @ private'. Jednak prawie na pewno nie ma to znaczenia, ponieważ jeśli nie umieszczasz wielu klas w tym samym pliku '.m', żadne inne klasy nie mogą nawet * zobaczyć * ivars, co jest warunkiem koniecznym do uzyskania dostępu do nich. –