Почему Apple не делает частные API недоступными? - PullRequest
0 голосов
/ 19 апреля 2010

Если Apple не хочет, чтобы разработчики использовали частные API в iPhone SDK, почему они не делают что-то вроде пометки классов и / или методов каким-либо эквивалентом Objective-C "внутреннего" ключевого слова C #? Если API распределены по нескольким двоичным файлам, Apple может преобразовать их в выделенные двоичные файлы только для частного API, чтобы им было легче.

Ответы [ 2 ]

5 голосов
/ 19 апреля 2010

Objective-C не имеет эквивалента для "внутренних" или "окончательных" ключевых слов в C #. Я думаю, что это связано с динамической природой языка, что любая такая функциональность будет слишком легко обойти в любом случае.

Также в отношении iPhone SDK все библиотеки должны быть статически скомпилированы в приложение, динамическое связывание не допускается. Поэтому установка функции как «внутренней» не будет иметь никакого значения в видимости, даже если это будет возможно.

0 голосов
/ 19 апреля 2010

Короткий ответ, они не помечают их как частные, потому что они не описывают их вообще.

Сообщения, которые вы не должны отправлять, не отображаются в соответствующих файлах .h в SDK.

Частные API обычно обнаруживаются людьми, использующими инструменты типа class-dump для двоичных структур, а не для чтения заголовков.

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