iOS y OS X Sdk tienen un concepto genial de puenteo sin cargo. Si tuviera que escribir mi propio código en C y escribir Obj-C wrapper para él, y quiero usarlo como Toll-Free-Bridged, ¿cómo debería hacerlo? Cualquier ejemplo, por favor.¿Cómo implementar un puente sin cargo en ObjectiveC/C?
Respuesta
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.
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).
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
Esa es la parte "si puedes". Si realmente necesitas ajustar C, tienes que hacerlo de la manera difícil. –
- 1. ¿Cómo cargo un objeto compartido en C++?
- 2. ¿Cómo elegir un puente Java-COM?
- 3. ¿Cómo cargo un archivo en un hash Perl?
- 4. ¿Cómo implementar cierres sin gc?
- 5. ¿Cómo cargo un archivo javascript dinámicamente?
- 6. ¿Cómo cargo un commit de git específico?
- 7. Cómo implementar UISearchDisplayController en un UIViewController sin Interface Builder
- 8. ¿Cómo implementar un "observador" en Jquery sin complementos?
- 9. Implementar en iPhone sin ejecutar
- 10. ¿Cómo cargo una cadena en un FileStream sin ir al disco?
- 11. Un puente entre MongoDB DBObject y org.json.JSONObject?
- 12. ¿Cómo cargo un módulo en tiempo de ejecución en Perl?
- 13. Rendimiento del puente Linq
- 14. ARC y molde en puente
- 15. seleccionar más de un cargo en MySQL
- 16. Un ejemplo de patrón de puente
- 17. ¿Cómo cargo un archivo en la consola de Python?
- 18. ¿Cómo cargo las fuentes externas en un documento HTML?
- 19. ¿Cómo cargo un archivo html local en Jsoup?
- 20. ¿Cómo cargo un archivo JavaScript con Jint en C#?
- 21. ¿Cómo cargo un org.w3c.dom.Document desde XML en una cadena?
- 22. implementar signalR sin jquery
- 23. Scala 2.9 Puente-Método
- 24. ¿Cómo puedo implementar un ListView sin ListActivity? (use only Activity)
- 25. Cómo implementar una API REST sin estado
- 26. ¿Cómo configurar un núcleo y/o puente JMS programáticamente?
- 27. ¿Qué sucede cuando cargo un ensamblaje?
- 28. Cómo implementar aguardar sin Async CTP
- 29. ¿Cómo cargo un archivo de la carpeta config?
- 30. Implementando un puente-patrón compatible con KVO/Bindings en Cocoa
cocoadev.com parece que ya no existe, ¿tiene algún enlace actualizado? –
versión de archivo web: https://web.archive.org/web/20111013023821/http://cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass – kuba
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