2012-01-25 20 views

risposta

7

Vedere il tutorial su https://web.archive.org/web/20111013023821/http://cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass. Fondamentalmente, è necessario creare una struttura C, che abbia le stesse dimensioni e layout della controparte obj-c. Inoltre, è necessario fare alcune cose funky per implementare correttamente il mantenimento/rilascio.

+0

cocoadev.com non sembra essere più, ha un link aggiornato? –

+0

versione archivio web: https://web.archive.org/web/20111013023821/http://cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass – kuba

+0

Questo è stato contrassegnato per la rimozione perché non include i dettagli necessari da risolvere il problema nella risposta stessa. Potresti modificare questa risposta in modo che gli utenti non debbano seguire il link (o la versione dell'archivio web del link) per capire come risolvere il problema? – josliber

3

Il modo più semplice per eseguire questa operazione, se possibile, è scrivere il codice in Objective-C, quindi avvolgerlo in C. Ciò evita tutte le parti difficili del bridging senza pedaggio (e quelle parti difficili sono solo diventare più complicato. -retain/-release è più complicato se si desidera supportare ARC __weak ad esempio).

+0

Ma non ucciderebbe lo scopo? Vorrei implementare il core in C in modo che possa essere riutilizzato dall'ambiente ObjC (e anche per ottenere un incremento delle prestazioni, se presente). – zakishaheen

+0

Questa è la parte "se puoi". Se hai davvero bisogno di avvolgere C, devi farlo nel modo più duro. –

Problemi correlati