Câu hỏi phỏng vấn Objective-C
Câu hỏi

Tại sao delegate trong Objective-C không bao giờ được giữ lại?

Câu trả lời

Trong Objective-C, delegate thường không được giữ lại (retain) để tránh tình trạng "strong reference cycle" (chu kỳ tham chiếu mạnh), còn được biết đến là "retain cycle". Một chu kỳ tham chiếu mạnh xảy ra khi hai đối tượng giữ tham chiếu mạnh đến nhau, dẫn đến việc không đối tượng nào được giải phóng khỏi bộ nhớ khi chúng không còn được sử dụng nữa. Điều này gây ra rò rỉ bộ nhớ, vì bộ thu gom rác (trong trường hợp của Objective-C là Automatic Reference Counting - ARC) không thể giải phóng bất kỳ đối tượng nào trong chu kỳ tham chiếu mạnh.

Delegate thường là một đối tượng mà đối tượng khác (thường là một đối tượng UI hoặc một đối tượng hệ thống) gửi thông điệp để thông báo về các sự kiện hoặc để yêu cầu dữ liệu. Nếu một đối tượng giữ một tham chiếu mạnh đến delegate của nó, và delegate đó cũng giữ một tham chiếu ...

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Mục đích của NSManagedObjectContext trong Objective-C là gì và nó hoạt động như thế nào?

expert

Sự khác biệt giữa việc đánh dấu một phương thức là @objc so với dynamic trong Swift như thế nào?

expert

Dynamic Dispatch là gì và cách nó hoạt động trong Objective-C như thế nào?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào