2012-01-10 4 views
19

Esiste un'opzione del compilatore (o un altro modo) per vedere dove ARC sta inserendo il mantenimento e il rilascio? Questo è principalmente per curiosità. Posso vederli nel codice di disassemblaggio, ma a volte è difficile da controllare.Vedere dove viene inserito il mantenimento e il rilascio di ARC

+2

+1 domanda molto interessante. D'altra parte, non riesco a vedere come questo ti possa aiutare, ma sono sicuro che hai in mente qualche situazione ...? –

+3

Può essere utile se devi fare molti tipi di cast di tipo __bridge in codice c. Le cose possono diventare un po 'confuse, ma come ho detto, sono per lo più curioso. Mi piace sapere come funzionano le cose non solo come farle funzionare. –

+0

Roger, non capisco il tuo obiettivo. Se si desidera controllare i retains ecc., Compilare semplicemente come non ARC (-fno-objc-arc). ARC aggiungerà ritardi proprio come faresti tu, ma forse userai un valore meno recente di quanto potresti. Questo sarà lo stesso sia per i sistemi pre-ARC che ARC. Andrew – adonoho

risposta

0

No, non è così. Sono d'accordo però, sarebbe un'aggiunta abbastanza carina (anche se non servirebbe molte funzioni)! E come hai detto tu, puoi guardare nel codice di disassemblaggio se sei davvero curioso.

4

No. Se il compilatore dovesse fornire questo, verrebbe assolutamente sopraffatto dal numero di ritiri/rilasci, poiché la maggior parte di essi viene eliminata durante la fase di ottimizzazione. Ma il compilatore non può nemmeno farlo, perché ARC non è una fase di pre-elaborazione. Fa parte della compilation. Quindi non sarai in grado di ottenere nulla oltre a guardare l'assemblea.

+0

e quando arrivi Codice ARC-ed per 4.x? –

+0

@Yar: cosa intendi? –

+0

Codice compilato per funzionare con iOS 4.x, che in realtà non supporta ARC. Quel codice viene effettivamente inserito nel codice prima della compilazione, giusto? –

Problemi correlati