Как создать частные методы и ivars в Objective-C в iOS> = 4.0?

Я слышал, что в последнее время можно создавать частные методы, объявив интерфейс еще раз в файле .m. Но что такое синтаксис?

Если это имеет значение: под ARC.

  • Должен ли он отображаться прямо перед @implementation?
  • Это похоже на объявление @interface в файле .h?
  • Должна ли она дублировать информацию о соблюдении наследования и протоколе?
  • С каких это пор это доступно? Что такое самая старая iOS и среда выполнения Objc-C, которая ее поддерживает?

Заголовок файла:

//YourClass.h: @interface YourClass { @private //optional //private scope ivars @protected //default, optional //protected scope ivars @public //optional //public scope ivars @package //optional //package scope ivars } //public methods @end 

Файл реализации:

 //YourClass.m: #import "YourClass.h" //you could also import this class extension (that's what it's called) from an //external header file which can be helpful for making pseudo-protected methods/ivars //Don't forget the additional import statement then, though. @interface YourClass () <PrivateProtocol> //protocol tag optional, of cource @private //optional //private scope hidden ivars @protected //default, optional //protected scope hidden ivars @public //optional //public scope hidden ivars @package //optional //package scope hidden ivars @end @implementation YourClass //your class' method implementations @end 

Документы по областям ivar.

Для получения дополнительной информации о том, что нового в приведенном выше фрагменте и что это такое (совместимость и т. Д.), Смотрите сессию WWDC 2011 № 322

Xcode 4.2 привел скрытые частные ивары. Расширения класса существуют довольно давно.