Câu hỏi phỏng vấn Swift
Câu hỏi

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?

Câu trả lời

@objc

Thuộc tính @objc được sử dụng để làm cho mã Swift (lớp, phương thức, thuộc tính, v.v.) có thể nhìn thấy từ Objective-C. Điều này thường cần thiết khi bạn muốn mã Swift của mình tương tác với mã Objective-C, ví dụ như thiết lập target/action cho các nút và nhận dạng cử chỉ

Dynamic

Thuộc tính dynamic được sử dụng để chỉ định rằng việc truy cập thành viên của một lớp sẽ sử dụng phương thức gửi động của Objective-C. Khi bạn đánh dấu một khai báo thành viên với từ khóa dynamic, truy cập đến thành viên đó luôn được gửi động thông qua runtime của Objective-C. Truy cập đến thành viên đó không bao giờ được inline hoặc devirtualized bởi trình biên dịch. Do đó, các khai báo được đánh dấu với từ khóa dynamic được gửi động sử dụng runtime của Objective-C và do đó ngầm định được đánh dấu với thuộc tính @objc

Khi nào sử dụng @objc so với Dynamic?

  • Sử dụng @objc: Khi bạn muốn mã Swift của mình có thể nhìn thấy và tương tác...
expert

expert

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

middle

Làm cách nào để sắp xếp một custom objects theo giá trị thuộc tính trong Swift?

expert

Giải thích trường hợp sử dụng khi ARC không giúp bạn giải phóng bộ nhớ (nhưng GC sẽ giúp)?

senior

Sự khác biệt giữa AnyAnyObject trong Swift là gì?

Bình luận

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

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