Объявить интерфейс внутри файла реализации (Objective-C)
========================================================

В последней версии XCode (4.3) я видел, что предопределенные шаблоны (такие как шаблон Master / Detail), в которых объявление интерфейса выполняется в файле .m. Например, в файле MyFile.h есть:

И в файле MyFile.m есть:

Почему это сделано таким образом? Почему еще один объект не объявлен в файле MyFile.h?

заранее спасибо

Они называются расширением класса. Они похожи на категории, но могут быть объявлены только в реализации класса, а не в каком-либо другом классе. Использование расширений заключается в том, чтобы повторно объявить свойство public или readwrite, а также объявить более новые, если это необходимо. просто позволяет вам объявлять свойства и переменные в местах, отличных от @interface, так что имя extensios.

Это было сделано для решения проблемы с категориями, поскольку они делают методы общедоступными, а способность классов скрывать данные компенсируется, но расширение класса эффективно расширяет основной интерфейс класса, к которому объявленные методы предъявляют те же требования, что и методы, объявленные в общедоступный первичный интерфейс класса.