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

Sự khác biệt giữa copyretain trong Objective-C là gì?

Câu trả lời

Trong Objective-C, "retain" và "copy" là hai cách để quản lý bộ nhớ của đối tượng, nhưng chúng hoạt động theo những cách khác nhau.

Retain

Khi bạn "retain" một đối tượng, bạn tăng số lượng tham chiếu (retain count) của đối tượng đó lên một. Điều này giúp giữ đối tượng trong bộ nhớ và ngăn chặn việc nó bị hủy khi không còn được tham chiếu. Khi bạn giữ một phiên bản được "retain" của đối tượng, bạn chia sẻ bản sao đó với bất kỳ ai đã truyền nó cho bạn. Điều này có nghĩa là đối tượng được giữ sẽ không bị hủy cho đến khi số lượng tham chiếu giảm xuống còn không thông qua việc gọi "release" đối với đối tượng đó

Copy

Trái lại, khi bạn "copy" một đối tượng, bạn tạo ra một đối tượng mới với các giá trị trùng lặp. Điều này được coi như là việc tạo ra một bản sao hoặc một bản clone của đối tượng. Bạn không chia sẻ bản clone này với bất kỳ ai đã truyền nó cho bạn. Điều này đặc biệt quan trọng khi làm việc với các đối tượng có thể thay đổi, như NSStringNSMutableString. Ví dụ, nếu ai đó truyền cho bạn một NSMutableString (một...

junior

junior

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

senior

@autoreleasepool trong Objective-C là gì?

expert

Việc gửi tin nhắn tới nil có nghĩa là gì và nó thực sự hữu ích thế nào trong Objective-C?

senior

Sự khác biệt giữa NSMapTableNSDictionary trong Objective-C là gì?

Bình luận

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

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