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

entry

Objective-C là gì?

middle

Key-Value-CodingKey-Value-Observing trong Objective-C là gì?

expert

Tại sao và trong những điều kiện nào chúng ta nên sử dụng @autoreleasepool 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