Sự khác biệt giữa từ khoá assign
và retain
strong Swift là gì?
Sự khác biệt giữa từ khoá assign
và retain
strong Swift là gì?
Trong lập trình iOS với Objective-C, từ khoá assign
và retain
(tương đương với strong
trong Swift) được sử dụng để quản lý bộ nhớ và tham chiếu đến các đối tượng. Dưới đây là sự khác biệt chính giữa chúng:
Assign:
Assign
được sử dụng cho các kiểu dữ liệu nguyên thủy (primitive types) như NSInteger
hoặc CGFloat
, cũng như các kiểu dữ liệu không phải là đối tượng (non-object types).assign
, không có việc tăng hoặc giảm bộ đếm tham chiếu (reference count) cho đối tượng được gán.Assign
thường không an toàn với việc quản lý bộ nhớ vì nó không giữ một tham chiếu mạnh đến đối tượng, có nghĩa là đối tượng có thể bị giải phóng khỏi bộ nhớ mà biến assign
vẫn trỏ đến địa chỉ bộ nhớ đó, dẫn đến lỗi dangling pointer.Retain/Strong:
-...
junior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào