Что такое соглашение/правило/предпочтение/диктат о том, где должны быть объявлены переменные частного экземпляра и почему?Где скрывать ваши частные объекты в 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
Можно ли прокомментировать соответствующее использование этих трех разделов или указать на это хороший веб-ресурс? Благодаря!
+1 для названия. – IronMan84
Название немного дерзкое, но я серьезно отношусь к вопросу. Мне не удалось найти полную документацию по этой теме. Ничего, что я видел из книг (Кочан, Садун, Али) и Apple doc, дает полное и всестороннее обсуждение этого вопроса. – Phil
По умолчанию объем ivars в блоке '@ implementation' равен' @ private'. Однако это почти бесполезно, потому что, если вы не ставите несколько классов в один и тот же файл '.m', никакие другие классы не могут даже видеть * ivars, что является необходимым предварительным условием для их доступа. –