Tôi đang sử dụng ARC. ARC có tự động giải phóng tất cả các thuộc tính trong dealloc
không? Có cần phải đặt thủ công tất cả thuộc tính công khai và trường riêng tư thành nil
không? Có mô hình tốt nào để theo dõi không?Loại thuộc tính nào sẽ được đặt thành nil trong dealloc?
5
A
Trả lời
5
Trong ARC, mẫu này ... không làm gì trong dealloc, hoặc thậm chí thực hiện nó. ARC quản lý các thuộc tính và biến mẫu của bạn cho bạn.
Ngoại lệ duy nhất là dealloc là nơi tốt để hủy đăng ký nhận thông báo, nếu đối tượng của bạn đã đăng ký bất kỳ thông báo nào.
0
Câu hỏi hay. Khi sử dụng ARC
trình biên dịch sẽ thực hiện phương thức dealloc
cho bạn và sẽ xử lý ngầm việc giải phóng các biến và thuộc tính của bạn.
Bạn vẫn có thể cần tùy chỉnh - dealloc
nếu lớp học của bạn cần làm bất cứ điều gì khác ngoài việc phát hành bộ nhớ (ví dụ: hủy đăng ký các thông báo như jrturton được đề cập).
Bạn có thể nắm bắt tốt những gì bạn cần xem xét khi chuyển sang ARC trong chính thức của Apple notes.
Các vấn đề liên quan
- 1. Cài đặt IBOutlets để nil trong dealloc
- 2. dealloc, sử dụng bản phát hành hoặc đặt thành nil cho thuộc tính?
- 3. Đặt đại biểu thành nil theo ARC?
- 4. Thuộc tính trong dealloc: phát hành sau đó thiết lập để nil? hoặc chỉ đơn giản là phát hành
- 5. NSCheckingResult Range Thuộc tính không được đặt thành {NSNotfound, 0}?
- 6. Các biến mẫu có được đặt thành nil theo mặc định trong Objective-C không?
- 7. Điều gì sẽ khiến tài sản được khai báo (mạnh) của tôi trở thành nil sau lưng tôi?
- 8. Nhận thành viên thuộc tính nào được áp dụng từ bên trong thuộc tính constructor?
- 9. Loại ngoại lệ nào sẽ được sử dụng khi thuộc tính không thể rỗng?
- 10. Có cách nào để đặt thuộc tính vào thuộc tính loại ẩn danh không?
- 11. Không thể đặt thuộc tính thành chuỗi?
- 12. Thay đổi thuộc tính Dữ liệu cốt lõi thành nil (ARC có liên quan?)
- 13. Cách đặt thuộc tính android: layout_alignParentLeft thành imageview trong mã?
- 14. jsp không thể đặt thuộc tính phiên thành chuỗi
- 15. removeObserver: forKeyPath: trong dealloc
- 16. Tại sao chúng ta phải đặt biến __block thành nil?
- 17. Thuộc tính Real Advantage to ScaffoldColumn được đặt thành Sai trong MVC 3 Mẫu ID Thuộc tính
- 18. Có thường đặt đối tượng thành nil không?
- 19. Đặt loại thuộc tính cho điều khiển tùy chỉnh WPF?
- 20. ARC: gửi nil đến một đối tượng không gọi cho dealloc của nó ngay lập tức
- 21. Phát hành, Dealloc và tham chiếu Tự
- 22. Loại đóng Thành phần không có thuộc tính có thể cài đặt IsMultimedia tương ứng
- 23. Giá trị trả lại của thuộc tính khác nếu thuộc tính cần thiết là nil
- 24. Đặt thuộc tính QTMovie
- 25. Cách đặt thuộc tính Ant chỉ khi không được đặt
- 26. Thuộc tính Struts ActionForm nên loại nào?
- 27. Đặt thuộc tính với EventTrigger
- 28. Làm cách nào để chuyển đổi thuộc tính trong MongoDB từ văn bản thành loại ngày?
- 29. Khi nào các thuộc tính mạnh được phát hành trong ARC trong iOS?
- 30. Cách đặt thuộc tính android layout_alignParentBottom thành nút động
Thông báo hủy đăng ký trong dealloc là rất quan trọng, vì loại lỗi này rất khó tìm thấy – amb
Nếu bất kỳ objec nào có bất kỳ đại biểu nào, đại biểu cũng có thể không ở đây. 'someObject.delegate = nil;' – GangstaGraham
@GangstaGraham nếu các đối tượng có tham chiếu yếu đến các đại biểu của họ, bạn không cần phải làm điều này, nhưng đôi khi tôi thấy rằng nó phải được thực hiện, đặc biệt cho chế độ xem cuộn và chế độ xem web đại biểu, ngay cả dưới ARC. – jrturton