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

junior

Giải thích các loại giao thức trong Objective-C?

senior

Trong Objective-C, khi bạn gọi một phương thức trên một con trỏ nil, điều gì sẽ xảy ra?

expert

Có vấn đề gì vơi NSEnumerator và tại sao NSFastEnumeration lại được giới thiệu trong Objective-C?

Bình luận

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

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