arco è una tecnologia che si applica al codice sorgente compilato dal compilatore Objective-C e ha l'effetto di trasformare ogni incarico come questo:
foo = bar
Dove "foo" e "bar" sono NSObjects nel codice seguente:
if (foo != null)
[foo release];
if (bar != null)
[bar retain]
foo = bar;
Come si può vedere, si tratta solo di un compilatore trick t hat riscrive il tuo codice in modo da non dimenticare di conservare/rilasciare le cose e si applica solo a Objective-C.
Quali librerie Objective-C utilizzano (ARC o no ARC) non è molto importante per MonoTouch, nella misura in cui utilizzano il protocollo documentato esistente per quando conservare e quando rilasciare. MonoTouch segue solo quelle regole.
Gli oggetti C# non hanno il percorso del codice di mantenimento/rilascio e utilizzano solo GC per determinare quali oggetti sono vivi.
Quando gli oggetti Objective-C sono emersi nel mondo C#, Monotouch prende un riferimento (chiama retain). Quando il GC MonoTouch determina che un oggetto non è più raggiungibile da alcun codice gestito, il GC chiama il rilascio sull'oggetto.
fonte
2013-08-05 14:01:47
Una buona presentazione sull'argomento: "Gestione memoria avanzata su iOS e Android - Evolve 2013" http://xamarin.com/evolve/2013#session-0w86u7bco2 –