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

Sự khác biệt giữa việc triển khai @property với `@...

Câu trả lời

Trong Objective-C, @property là một cách để khai báo các thuộc tính với các phương thức truy cập (accessor methods) tự động được tạo ra. Khi bạn khai báo một @property, bạn có thể sử dụng @synthesize hoặc @dynamic để chỉ định cách thức các phương thức truy cập này được xử lý.

@synthesize

Khi sử dụng @synthesize, bạn đang yêu cầu trình biên dịch tự động tạo ra các phương thức truy cập (getter và setter) dựa trên mô tả của thuộc tính. Nó cũng sẽ tạo ra một biến thể hiện (instance variable) để sử dụng, mà bạn có thể chỉ định như sau: @synthesize propertyName = _propertyName;. Theo quy ước, biến thể hiện này thường bắt đầu bằng dấu gạch dưới (_) theo sau là tên thuộc tính

@dynamic

Khi sử dụng @dynamic, bạn đang thông báo cho trình biên dịch rằng bạn sẽ cung cấp các phương thức truy cập một cách động trong tương lai và không yêu cầu trình biên dịch tạo ra chúng. Điều này thường được sử dụng trong các trường hợp như với các lớp con của NSManagedObject trong Core Data, nơi mà các phương thức truy cập được tạo ra một cách động bởi ...

senior

senior

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

expert

Giải thích method swizzling. Khi nào nên sử dụng nó trong Objective-C?

expert

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

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