2012-01-25 18 views

Respuesta

7

Consulte el tutorial en https://web.archive.org/web/20111013023821/http://cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass. Básicamente, debe crear una estructura C, que tenga el mismo tamaño y diseño que la contraparte obj-c. También se deben hacer algunas cosas funky para implementar correctamente retener/liberar.

+0

cocoadev.com parece que ya no existe, ¿tiene algún enlace actualizado? –

+0

versión de archivo web: https://web.archive.org/web/20111013023821/http://cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass – kuba

+0

Esto se ha marcado para su eliminación porque no incluye los detalles necesarios para resolver el problema en la respuesta misma. ¿Podría editar esta respuesta para que los usuarios no necesiten seguir el enlace (o la versión de archivo web del enlace) para comprender cómo resolver el problema? – josliber

3

La forma más sencilla de hacer esto, si puede, es escribir su código en Objective-C, y luego envolverlo en C. Esto evita todas las partes complicadas de la creación de puentes sin cargo (y esas partes complicadas son solo obtener más complicado. -retain/-release es más complicado si quieres soportar ARC __weak por ejemplo).

+0

Pero, ¿no mataría eso el propósito? Me gustaría implementar el núcleo en C para que pueda ser reutilizable fuera del entorno ObjC (y también para aumentar el rendimiento, si hay alguno). – zakishaheen

+0

Esa es la parte "si puedes". Si realmente necesitas ajustar C, tienes que hacerlo de la manera difícil. –

Cuestiones relacionadas