Объявление / определение местоположения переменных в 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: почему я хотел бы когда-либо объявить методы в частных интерфейсах? Мои методы закрытого класса, кажется, прекрасно компилируются без объявления в интерфейсе. Это в основном для удобства чтения?

Большое спасибо, ребята!

Ответы на вопрос(4)

Ваш ответ на вопрос