Ответ 1
Это расширение . Вы можете использовать его, чтобы сделать объявления, которые не хотите находиться в файле .h
.
Это использовалось многими разработчиками, даже ранее, которые вручную добавили расширение в файл .m
. Поэтому я предполагаю, что Apple включила это в шаблон, потому что оно широко используется и считается хорошей практикой.
Фактически, файл .h
должен использоваться только для того, чтобы сделать объявления, которые будут использоваться из других файлов. Возможно, вам придется объявить некоторые свойства, методы или константы, которые будут использоваться только внутри файла .m
. Для этих объявлений лучше сделать их в расширении класса.
Итак, чтобы ответить на ваши вопросы:
- Этот дополнительный @interface... требуется, если у меня есть отдельный файл .h?
Нет, это не требуется, но это лучшая практика.
- Почему это не появилось в проектах pre iOS 5?
Даже если это была обычная практика, она не была включена в шаблон.
- Могу ли я использовать это вместо отдельного файла .h?
Нет. Расширение класса не заменяет файл .h
, где вы должны объявить "общедоступный" интерфейс вашего класса.
- Какова наилучшая практика для этого?
Вы должны поместить в расширение класса все объявления, которые не должны быть видимыми вне файла .m
.