2010-06-08 16 views

Respuesta

18

API no documentadas, o API que no han expuesto explícitamente al desarrollador.

Si bien puede acceder a ellos, no hay garantía de que estas API no cambien en futuras revisiones de iOS, además es una forma segura de hacer que su aplicación sea rechazada.

+4

Por "puede acceder a ellos" quiere decir "Apple rechazará su aplicación para usarlos". – ceejayoz

+0

Sí. Déjame editar eso: D – Alan

+0

Así que no vas a tropezar con ellos, realmente tienes que buscarlos, ¿qué es lo que hacen los hackers para cambiar la imagen de fondo, etc. correcta? – TheLearner

0

Se refieren a las API que solo son para Apple. O para ser más correcto, generalmente NO debe ser utilizado por los desarrolladores de SDK.

1

Una API privada suele ser una llamada a un método que no es supuestamente que deben llamar los desarrolladores de terceros. Estas llamadas generalmente están reservadas para el proveedor del producto/API (Apple) y generalmente son "privadas" porque la implementación de ellas podría cambiar en el futuro, y si permiten que los desarrolladores las usen y la implementación cambie, la aplicación podría romperse. .

+0

Creo que una razón más razonable por la que no quieren API privadas es porque su tecnología de solución de seguridad (DRM) y restricciones en cosas como el tethering y la tecnología de firma de App Store dependen de ciertas cosas que quedan fuera de su alcance, como un desarrollador de SDK. –

+2

@ Warren. No eso no es. Sería estúpido tener DRM que dependiera de los desarrolladores que cumplen las reglas. – JeremyP

+0

Es posible violar esas reglas y aprender cosas que pueden ayudar en el desarrollo de rootkits. –

5

Un método privado es aquel que se usa como detalle de implementación en lugar de como detalle de la interfaz [pública]. En otros idiomas, donde los métodos públicos y privados son más ejecutables, los métodos privados generalmente no pueden invocarse desde otra cosa que no sea la clase en la que están contenidos. El objetivo de esto es ocultar los detalles de implementación o evitar la dependencia externa de los detalles de implementación. Por ejemplo, NSArray probablemente tiene una serie de métodos privados que se ocupan de la asignación de memoria y el almacenamiento optimizado para un acceso eficiente.

Objective-C no tiene métodos verdaderamente privados; usted es libre de enviar cualquier mensaje que desee a cualquier objeto, y puede responder o no. En tiempo de ejecución, también puede inspeccionar exactamente a qué mensajes responderá una clase (y sus instancias) a través de una serie de llamadas a Objective-C Runtime API [que están documentadas públicamente].

Algunas personas intentan utilizar métodos privados para obtener un comportamiento del programa que no es posible con la interfaz públicamente documentada; quizás como una optimización, tal vez para hacer algo que la API nunca tuvo la intención de hacer. Es fácilmente posible debido a la naturaleza dinámica de Objective-C y la falta de verdaderos métodos privados.

Como nota al margen; Apple suele usar un guion bajo en los nombres de los métodos para indicar que es privado. Apple también indica que los nombres de métodos que comienzan con un guión bajo están reservados solo para Apple.

Cuestiones relacionadas