ARC là một công nghệ áp dụng cho mã nguồn được biên soạn bởi trình biên dịch Objective-C và nó có tác dụng chuyển tất cả các nhiệm vụ như thế này:
foo = bar
đâu "foo" và "thanh" là NSObjects vào đoạn mã sau:
if (foo != null)
[foo release];
if (bar != null)
[bar retain]
foo = bar;
Như bạn thấy, nó chỉ là một trình biên dịch lừa t hat viết lại mã của bạn để bạn không quên giữ lại/giải phóng mọi thứ và chỉ áp dụng cho Objective-C.
Các thư viện mục tiêu-C sử dụng (ARC hoặc ARC) không thực sự quan trọng đối với MonoTouch, miễn là chúng sử dụng giao thức đã được ghi lại tài liệu hiện tại khi nào cần giữ lại và khi nào phát hành. MonoTouch chỉ tuân theo các quy tắc đó.
Đối tượng C# không có đường dẫn mã lưu giữ/giải phóng và thay vào đó, chỉ sử dụng GC để xác định đối tượng nào còn hoạt động.
Khi đối tượng mục tiêu-C được hiển thị trên thế giới C#, Monotouch lấy một tham chiếu (gọi là giữ lại). Khi MonoTouch GC xác định rằng một đối tượng không còn có thể truy cập được bởi bất kỳ mã được quản lý nào, thì GC gọi các bản phát hành trên đối tượng.
Nguồn
2013-08-05 14:01:47
Bài thuyết trình hay về chủ đề: "Quản lý bộ nhớ nâng cao trên iOS và Android - Phát triển năm 2013" http://xamarin.com/evolve/2013#session-0w86u7bco2 –