Что имеет в виду Apple, когда они обращаются к частным API?
Недокументированные API или API, которые они явно не предоставили разработчику.
Хотя вы можете получить к ним доступ, нет гарантии, что эти API не изменятся в будущих версиях iOS, плюс это верный способ отклонить ваше приложение.
Частный API обычно представляет собой вызов метода, который не предполагается для вызова сторонними разработчиками. Эти вызовы обычно зарезервированы для поставщика продукта / API (Apple) и обычно являются «частными», потому что их реализация может измениться в будущем - и если они позволят разработчикам использовать их, а реализация изменится, приложение может сломаться. .
Частный метод - это метод, который используется как деталь реализации, а не деталь [общедоступного] интерфейса.В других языках, где общедоступные и частные методы более применимы, частные методы обычно не могут быть вызваны из чего-либо, кроме класса, в котором они содержатся. Цель этого - скрыть детали реализации или предотвратить внешнюю зависимость от деталей реализации. Например, NSArray
, вероятно, имеет несколько частных методов, которые имеют дело с распределением памяти и оптимизированным хранилищем для эффективного доступа.
Objective-C не имеет действительно частных методов; вы можете отправить любое сообщение любому объекту, и он может ответить на него, а может и нет. Во время выполнения вы также можете проверить, на какие именно сообщения класс (и его экземпляры) будет отвечать, с помощью серии вызовов API среды выполнения Objective-C [которые публично задокументированы].
Некоторые люди пытаются использовать частные методы для получения поведения программы, которое невозможно с публично задокументированным интерфейсом; возможно, в качестве оптимизации, возможно, чтобы сделать то, для чего API никогда не предназначался. Это легко возможно из-за динамической природы Objective-C и отсутствия настоящих частных методов.
В качестве примечания; Apple обычно использует начальное подчеркивание в именах методов, чтобы указать, что это частный метод. Apple также заявляет, что имена методов, начинающиеся с подчеркивания, зарезервированы только для Apple.
Они означают API-интерфейсы, предназначенные только для использования Apple. Вернее, вообще НЕ для использования разработчиками SDK.