private
ничего не значит, в Objective-C, вы называете это peanuts
, если вы хотите. Это действительно ярлык для дифференциации категорий, если у вас несколько, но это значение произвольно. Это просто означает что-то для вас как разработчика.
Строка @implementation store
обозначает начало реализации для класса, определенного @interface store
(т. Е. Ни одна категория), которая, вероятно, объявлена в файле .h. Это факт, что интерфейс находится в «.h», что делает его общедоступным (потому что другие классы могут импортировать файл .h
и, следовательно, видеть объявление свойств, методов и т. Д.).
Он не поддерживает множество реализаций, они являются аддитивными. Конечно, тогда у вас есть вопрос о реализации того же метода в обоих. Apple категорически не приветствует. Вот doc.
Избегайте Категория Имя метода Столкновения
Поскольку методы, объявленные в категории добавляются к существующему классу, вы должны быть очень осторожны, об именах методов.
Если имя метода, объявленного в категории, является таким же, как метод в исходном классе, или метод в другой категории одного класса (или даже суперкласса), поведение не определено относительно того, какой метод реализация используется во время выполнения. Это менее вероятно, будет проблемой, если вы используете категории с вашими собственными классами, но могут создавать проблемы при использовании категорий для добавления методов в стандартные классы Cocoa или Cocoa Touch.