Это просто обычный интерфейс класса , унаследованный от NSObject, где вы объявляете ivars, свойства и методы
// in the .h file
@interface MyClass : NSObject
// ...
@end
Следующие два * категории ,которые позволяют добавлять методы в класс.Однако это не подкласс (не объявляйте метод с тем же именем, так как вы не сможете получить доступ к исходному).Если у вас есть именованная категория интерфейса (например, @interface MyClass (Private)
), то реализация должна быть представлена в @implementation MyClass (Private)
, в случае безымянных категорий (также называемых расширениями) реализация может быть предоставлена как обычно.Обратите внимание, что расширения также позволяют вам добавлять ivars в класс, в то время как (именованные) категории этого не делают.
// in the .m file (what's the purpose of the parens?)
@interface MyClass ()
// more property declarations which seem like they can go in the .h file
@end
// again in the .m file (what's the purpose of private?)
@interface MyClass (Private)
// some method declarations
@end