Объявление / определение местоположения переменных в ObjectiveC?
С тех пор, как начал работать над приложениями для iOS и целью C I 'Мы были действительно озадачены различными местами, где можно было объявлять и определять переменные. С одной стороны, у нас есть традиционный подход C, с другой стороны, у нас есть новые директивы ObjectiveC, которые добавляют OO поверх этого. Не могли бы вы, ребята, помочь мне понять лучшие практики и ситуации, когда яХотите использовать эти места для моих переменных и, возможно, исправить мое нынешнее понимание?
Вот'Пример класса (.h и .m):
#import
// 1) What do I declare here?
@interface SampleClass : NSObject
{
// 2) ivar declarations
// Pretty much never used?
}
// 3) class-specific method / property declarations
@end
а также
#import "SampleClass.h"
// 4) what goes here?
@interface SampleClass()
// 5) private interface, can define private methods and properties here
@end
@implementation SampleClass
{
// 6) define ivars
}
// 7) define methods and synthesize properties from both public and private
// interfaces
@end
Мое понимание 1 и 4 состоит в том, что это объявления и определения на основе файлов в стиле C, которые не имеют никакого представления о концепции класса и, следовательно, должны использоваться точно так, как они будут использоваться в C. I 'Мы уже видели, как они использовались для реализации статических синглетонов на основе переменных. Есть ли другие удобные способы использования?м отсутствует?Мой вывод о работе с iOS заключается в том, что ivars были полностью исключены из директивы @synthesize и, следовательно, в большинстве случаев их можно игнорировать. Это тот случай?Относительно 5: почему я хотел бы когда-либо объявить методы в частных интерфейсах? Мои методы закрытого класса, кажется, прекрасно компилируются без объявления в интерфейсе. Это в основном для удобства чтения?Большое спасибо, ребята!