Что представляет собой частный API в приложении для iPhone? - PullRequest
3 голосов
/ 08 мая 2010

Я довольно новичок в Objective-C и запутался в том, что подпадает под «частный API», который может заставить Apple отказаться от моего приложения. Включает ли это добавление методов в существующие классы? Например, я нашел некоторый код в stackoverflow, чтобы перекрасить значки панели вкладок для UITabBars с этим расширением класса UITabBarItem. Это считается "частным API"? Если нет, то что?

@interface UITabBar (ColorExtensions)
- (void)recolorItemsWithImage:(UIImage *)image shadowColor:(UIColor *)shadowColor shadowOffset:(CGSize)shadowOffset shadowBlur:(CGFloat)shadowBlur;
@end

Ответы [ 2 ]

4 голосов
/ 08 мая 2010

Нет, категории, добавленные по коду пользователя, не являются "частными". Частные API - это внутренние API Apple, которые не имеют документов. Методы являются закрытыми, если их нет в заголовочных файлах и нет в документации для разработчиков. (Как правило, если вы не получаете никаких предупреждений компилятора, вы не используете частные API.)

2 голосов
/ 08 мая 2010

Вышеприведенное, вероятно, относится к категории Objective-C , которая расширяет класс UITabBar новыми методами.Это прекрасно кошерно.Вы даже можете перезаписать существующие методы категориями, хотя это не рекомендуется.

Как правило, закрытые методы часто имеют подчеркивание перед ними.Вы также не хотите использовать частные классы, которые Apple резервирует для больших объектов пользовательского интерфейса, таких как частные компоненты в пределах UIWebView.Вы не хотите их использовать, иначе ваше приложение будет отклонено.

Все, что вы видите в заголовочном файле в Frameworks вашего проекта, является "общедоступным" и может использоваться.В любом случае, неплохо бы пролистать заголовок, если вы действительно хотите знать все о классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...