Trong iOS, bạn xử lý bộ nhớ như thế nào để tránh retain cycle khi dùng closures?
Trong iOS, bạn xử lý bộ nhớ như thế nào để tránh retain cycle khi dùng closures?
Để tránh retain cycle khi sử dụng closures trong iOS, bạn cần sử dụng từ khóa [weak] hoặc [unowned] để khai báo các weak reference đến self
bên trong closure.
Khi một closure giữ một strong reference đến một đối tượng, và đối tượng này cũng đồng thời giữ một strong reference đến closure, sẽ tạo nên một retain cycle, dẫn đến việc cả hai không thể được giải phóng khỏi bộ nhớ.
[weak self] được sử dụng khi bạn muốn đối tượng bên trong closure có thể được giải phóng khi không còn được sử dụng, vì self
có thể bằng nil
nếu đối tượng bị giải phóng. **[u...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào