Có hai thuộc tính quản lý bộ nhớ mới cho các thuộc tính được ARC giới thiệu strongvà weak.
Ngoài ra copy, rõ ràng là một cái gì đó hoàn toàn khác nhau, có sự khác biệt nào giữa strongvs retainvà weakvs assignkhông?
Theo hiểu biết của tôi, sự khác biệt duy nhất ở đây là weaksẽ gán nilcho con trỏ, trong khi assignsẽ không có nghĩa là chương trình sẽ bị sập khi tôi gửi tin nhắn đến con trỏ sau khi nó được phát hành. Nhưng nếu tôi sử dụng weak, điều này sẽ không bao giờ xảy ra, vì tin nhắn gửi đến nilsẽ không làm gì cả.
Tôi không biết về bất kỳ sự khác biệt giữa strongvà retain.
Có bất kỳ lý do tại sao tôi nên sử dụng assignvà retaintrong các dự án mới, hoặc là loại bị phản đối?
weakvà strong) và 4 vòng đời biến ( __strong, __weak, __unsafe_unretained, __autoreleasing). Xem ghi chú ARC bên dưới.
                assignkhi biên dịch với ARC là một lỗi. Có rất nhiều câu trả lời bị xóa về điều này. Có vẻ như đã được thay đổi trước khi phát hành cuối cùng. unsafe_unretainedlà thuộc tính ưa thích cho nhiều người trong chúng ta sớm chấp nhận. Để chứng minh đó unsafe_unretainedlà thuộc tính hợp lệ, hãy xem phần "Lập trình với mục tiêu-C" của Apple trong phần "Đóng gói dữ liệu" trong tiêu đề "Sử dụng tài liệu tham khảo không an toàn cho một số lớp". Trong đó nói: "Đối với một tài sản, điều này có nghĩa là sử dụng thuộc tính unsafe_unretained:"
                
strong,weakvàunsafe_unretained.