2010-03-22 18 views
7

Estoy trabajando en un par de productos mac, y para hacer lo que necesito hacer, estoy usando algunas llamadas a métodos no documentados en Mac Classes. Al igual queLlamadas Mac no documentadas

de IKImageView

doRotate:(id) 

y

de PDFDocument

(NSPrintOperation *)getPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate; 

¿Qué tan común es que los programadores Objective C para utilizar métodos como éste? ¿Cómo se entera de ellos (aparte de Google)? ¿Qué tan peligroso es usarlos? ¿Hay algún peligro aparte de que Apple los hará dejar de estar disponibles en algún futuro rev y entonces tu programa se romperá?

+1

Ha pedido suficientes preguntas, debe haber aprendido cómo dar formato a ellas por ahora; -) –

+0

@Joachim: Sí, pensé que una lista de nombres de funciones no era un código que debía formatearse ... B-) –

+0

no es absolutamente necesario, pero suelen ser mucho más fáciles de leer, cuando son formateado. Pero tal vez sea solo yo, así que siéntete libre de ignorarme. –

Respuesta

7

No es del todo inaudito, pero si va a utilizarlos en el software de lanzamiento, debe asegurarse de tener toda la mierda y probar cada versión de OS X extensamente antes de que salga, porque sí , Apple podría hacer cualquier cantidad de cosas en una futura revisión (cambiar la firma del método, eliminar el método, introducir algún error sutil en el método que funciona en todos los casos de uso ).

En cualquier caso, si encuentra que hay algo que no puede hacer con la API existente, debe presentar una solicitud de mejora con Apple para que sepan que es algo que deben agregar.

+0

Ok, ya lo había hecho por 2 de ellos ... Y no obtuve respuesta ... Acabo de enviar otro por el más reciente que encontré ... –

4

Para extraer una interfaz, puede utilizar la utilidad class-dump que le proporcionará un buen archivo de encabezado generado automáticamente de cualquier archivo MachO. Por ejemplo, para encontrar getPrintOperationForPrintInfo método que puede utilizar el comando:

$ class-dump /System/Library/Frameworks/Quartz.framework/Frameworks/PDFKit.framework/PDFKit | fgrep getPrintOperationForPrintInfo 

que le dará:

- (id)getPrintOperationForPrintInfo:(id)arg1 autoRotate:(BOOL)arg2; 
Cuestiones relacionadas