Ответ 1
Я думаю, что в некоторых случаях заголовки Objective-C несут меньше общей информации, но они могут более четко показать интерфейсы.
Например - использование современных Objective-C времени выполнения (для Mac OS и iOS) вам не нужно объявлять приватные iVars или частные методы в заголовках - они могут быть перенесены в категорию в файле реализации. Вы даже можете переопределять свойства как readwrite
в реализации, где они объявлены как readonly
в файле заголовка.
Это означает, что в классе происходит гораздо больше, чем показано в файлах заголовков, но общедоступные интерфейсы четко определяются отдельно от частной реализации - что хорошо в диаграмме UML.
Как для длинных имен методов - это часть соглашения Objective-C. Вы можете любить его или ненавидеть (я лично его люблю). Но с точки зрения написания их методы не показывают своих параметров. Например: предположим, что у вас есть метод, объявленный как:
- (NSString *)resultStringWithOptions:(NSDictionary *)options withCharacterSet(NSCharacterSet *)charSet error:(NSError **)error:
Фактическое имя этого метода:
resultStringWithOptions:withCharacterSet:error:
Коротко.