Tại sao chúng ta không thể chỉ sử dụng `weak...
Tại sao chúng ta không thể chỉ sử dụng `weak...
Trong Swift, cả weak
và unowned
đều là các từ khóa được sử dụng để giải quyết vấn đề vòng tham chiếu mạnh (strong reference cycles) giữa các instance, giúp tránh rò rỉ bộ nhớ. Tuy nhiên, việc sử dụng weak
và unowned
phụ thuộc vào ngữ cảnh cụ thể và mỗi từ khóa có những ưu điểm và hạn chế riêng.
weak
: weak
được sử dụng khi có khả năng tham chiếu có thể trở thành nil
tại một thời điểm nào đó trong vòng đời của nó. Một tham chiếu weak
tự động trở thành nil
khi đối tượng mà nó tham chiếu đến được giải phóng. Điều này giúp tránh truy cập vào một đối tượng đã bị giải phóng, dẫn đến lỗi. Tham chiếu weak
luôn là tùy chọn (optional) và cần được kiểm tra trước khi sử dụng.unowned
: unowned
được sử dụng khi bạn có thể đảm bảo rằng tham chiếu sẽ không bao giờ là nil
trong suốt vòng đời của nó. unowned
không làm cho tham chiếu trở thành nil
khi đối tượng được giải phóng. Nếu bạn cố gắng truy cập một tham chiếu unowned
sau khi đối tượng mà nó tham chiếu đến đã bị giải phóng, ứng dụng của bạn sẽ gặp lỗi và bị crash. Điều này có thể hữu ...expert
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào