Todo lo que quiero hacer es crear aplicaciones Python bastante simples con cacao interfaz gráfica de usuario de .. ¿Alguien puede arrojar luz sobre la documentación horribles , o apúntame a algunos tutoriales que no solo te dan grandes bloques de código y supongo que sabes lo que hace NSThread.detachNewThreadSelector_toTarget_withObject _ ("queryController", self, None) ..?
[...]
básicamente todo lo que quiero hacer es escribir aplicaciones Cocoa sin tener que aprender ObjC.
Aunque Estoy básicamente de acuerdo con la respuesta del Soeren, me gustaría llevarlo aún más lejos:
Será un largo tiempo, si alguna vez, antes de poder utilizar cacao sin una cierta comprensión del objetivo ISN C. Cacao No es una abstracción construida independientemente del Objetivo C, está explícitamente ligada a ella. Esto se puede ver en la línea de ejemplo de código que ha citado anteriormente:
NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None)
Esta es la forma en Python de escribir la línea C Objetivo:
[NSThread detachNewThreadSelector:@selector(queryController:) toTarget:self withObject:nil];
Ahora, es importante notar aquí que esta línea se puede ver de dos maneras: (1) como una línea del objetivo C, o (2) como una invocación de los marcos del cacao. Lo vemos como (1) por la sintaxis. Lo vemos como (2) al reconocer que NSThread es un marco Cocoa que proporciona un conjunto de características útiles. En este caso, este marco de trabajo de Cocoa en particular nos facilita tener un objeto que comience a hacer algo en un nuevo hilo.
Pero el truco es este: el marco de Cocoa aquí (NSThread) nos proporciona este práctico servicio de una manera que está explícitamente ligada al lenguaje en el que se ha escrito el marco. A saber, NSThread nos dio una característica que se refiere explícitamente a "selectores". Los selectores son, de hecho, el nombre de algo fundamental sobre cómo funciona el Objetivo C.
Así que ahí está el problema. El cacao es fundamentalmente una creación de Objective-C, y sus creadores lo han construido con Objective C en mente. No pretendo que sea imposible traducir la interfaz a las funciones de Cocoa en una forma más natural para otros idiomas. Es solo que tan pronto como cambias el marco de trabajo de Cocoa para dejar de referirse a "selectores", ya no es realmente el marco de trabajo de Cocoa. Es una versión traducida. Y una vez que empiezas a ir por ese camino, supongo que las cosas se ponen realmente desordenadas. Intentas mantener el ritmo de Apple mientras actualizan Cocoa, tal vez tocas algunas partes de Cocoa que simplemente no se traducen bien en el nuevo idioma, lo que sea. Entonces, en cambio, cosas como PyObjC optan por exponer Cocoa directamente, de una manera que tiene una correlación muy clara y simple. Como se dice en la documentación:
Con el fin de tener una traducción sin pérdidas y sin ambigüedades entre los mensajes de Objective-C y los métodos de Python, el nombre del método equivalente Python es simplemente el selector con dos puntos reemplazados por guiones.
Claro, es un poco feo, y significa que necesitas saber algo sobre Objective-C, pero eso es porque la alternativa, si es que existe, no es necesariamente mejor.
El primer tutorial de PyObjC al que se vincula es un artículo de Jonathan Rentzsch (puede escuchar su voz en los videos, y puede reconocerla a partir de los videos de C4). A pesar de que está en el sitio de Apple sin una línea, no es "documentación de Apple" en el sentido de ser escrita y mantenida por Apple. –
¿No te gustan los documentos? Escribir algo. Es un proyecto de código abierto. – NSResponder