Penso che il titolo spieghi abbastanza bene la mia domanda, al momento sto lavorando a un piccolo framework per le mie esigenze personali e ho pensato di costruirlo con ARC (se è possibile?), E usarlo in vecchi progetti che erano costruito prima di ARC?Posso creare un framework ARC e usarlo in un progetto non ARC?
risposta
Sì, con un avvertimento: se si dispone di iOS 4.x come destinazione di distribuzione, è necessaria una libreria supplementare per gestire il codice compilato da ARC sul runtime precedente. Per un'applicazione creata utilizzando ARC, questa è inclusa nell'applicazione. Questo non è incluso se si sta utilizzando una libreria compilata ARC in un'applicazione non ARC.
È possibile collegare manualmente questa libreria all'applicazione non ARC per evitare problemi di runtime nelle versioni precedenti del sistema operativo aggiungendo -fobjc-arc
ai propri altri Linker Flag per l'applicazione.
Vedere this Apple Developer Forums thread per ulteriori discussioni su questo.
Va bene. La libreria è già compilata, quindi ARC/NonARC non dovrebbe più importare.
C'è un potenziale problema con il vecchio runtime e le librerie statiche abilitate ARC, che ho dettagliato nella mia risposta. –
È possibile collegare alla libreria di colla fornita da Apple (come ha detto Brad nella sua risposta sopra). Tuttavia, il qualificatore di variabile __weak non è compatibile con i sistemi operativi inferiori a 4.3 (Come menzionato qui: iOS 5 Best Practice (Release/retain?) in un commento di sudo).
- 1. ARC, non ARC e ereditarietà
- 2. Aggiunta di un progetto senza ARC nel progetto con ARC
- 3. Come abilitare ARC per un file nel progetto Non-ARC?
- 4. è possibile combinare codice progetto non ARC e ARC?
- 5. Come convertire il progetto ARC in non ARC?
- 6. Converti progetto non ARC in ARC senza ricrearlo?
- 7. Utilizzo di codice non ARC in un progetto abilitato ARC - Aggiunta di Facebook
- 8. IBOutlet per NSTextView in un progetto ARC
- 9. Utilizzo di una libreria statica ARC in un progetto NON ARC
- 10. NSMakeCollectable e ARC non funzionano
- 11. Includere libreria non ARC in un'app ARC?
- 12. ARC o non ARC iphone iOS5
- 13. quanto è sicuro mescolare il codice ARC e quello non ARC nello stesso progetto iOS?
- 14. ARC e ASIHTTPRequest
- 15. Come abilitare/disabilitare ARC in un progetto xcode?
- 16. JSONKit supporta ARC oppure esiste un fork che supporta ARC?
- 17. "Fuoco e dimenticare" di classe in ARC
- 18. Come posso sostituire class_createInstance in arc?
- 19. errore ARC: -fobjc-arc non è supportata con l'ABI fragile
- 20. ARC e proprietà IBOutlet deboli
- 21. iOS: Come posso distruggere un Singleton in ARC? Dovrei?
- 22. falso va_list in ARC
- 23. Sotto ARC, come posso rilasciare gli elementi in un NSArray?
- 24. Per ARC o non per ARC? Quali sono i pro e i contro?
- 25. Come abilitare ARC per un singolo file
- 26. realloc() & ARC
- 27. ARC: impostazione degli indicatori del compilatore su -fno-objc-arc e errori di creazione
- 28. IBOutlet e viewDidUnload sotto ARC
- 29. ios5 ARC qual è il flag del compilatore per escludere un file da ARC?
- 30. SDK iPhone ARC e Facebook
In realtà, l'ho provato in questo momento in un progetto e non è stato d'aiuto, non hai avuto la possibilità di dare un'occhiata? http://stackoverflow.com/questions/8375233/ld-duplicate-symbol-objc-retainedobject-on-ios-4-3-but-not-on-ios-5-0 –
Perché dovrebbero esserci problemi di runtime? ARC non lo sta facendo al momento della compilazione? –
@ZakyGerman - ARC non si limita a iniettare '-retain' e' -release' nei punti giusti, e introduce cose come il nuovo '@ autoreleasepool', quindi ha bisogno di un piccolo aiuto in fase di esecuzione per questo. Questo è integrato in iOS 5.0, ma 4.x richiede questa libreria di compatibilità all'indietro. –