Преимущества удобных методов @implementation
Я просматривал пример кода, предоставленный Apple, и наткнулся на что-то интересное, о чем я не узнал. В подклассе в .m
файл, есть несколько разделов, объявленных с @implementation
, Последний обычный @implementation
Я ожидаю - реализация класса, где весь код идет, но выше, это пара коротких реализаций, каждая из которых определяет один метод. Они объявлены в этом формате: @implementation ClassName (Convenience)
, Метод, определенный внутри, имеет тот же формат, что и другие методы, но они имеют префикс aapl_
, После каждого @implementation
определение следует @end,
конечно. Эти методы вызываются для создания экземпляра ClassName
затем вызовите метод как со стандартным API: [anInstance aapl_thisInterestingMethod:aParameter];
Таким образом, это, кажется, способ добавить метод в класс, не создавая категорию, вы вызываете его с помощью экземпляра класса, и он относится только к этому файлу. Ты можешь использовать self
ссылаться на вызывающий аргумент.
Мой вопрос:
- Есть ли что-то большее, чем это?
- Почему (удобство) добавляется до конца?
- Это
aapl_
префикс добавлен просто для того, чтобы показать, что это не часть стандартного API, а наш собственный метод? - Почему это лучше, чем определять метод, как обычно, принимая в качестве аргумента вызова в качестве обычного аргумента? Например:
[self anInterestingMethod:myInstance withParameter:aParameter];
- Как называются эти типы методов / реализаций и что еще я должен знать о них?
РЕДАКТИРОВАТЬ: Этот вопрос вовсе не связан с вопросом, который помечен как дубликат... @interface не @implementation