@synthesize và @property là hai từ khóa quan trọng trong Objective-C, nhưng chúng có mục đích khác nhau.
- @property:
@propertyđược sử dụng để định nghĩa một thuộc tính trong một class.- Nó không tự động tạo getter và setter, nhưng chỉ làm cho chúng có sẵn để sử dụng.
- Bạn có thể chỉ định các thuộc tính như “readonly” hoặc “readwrite” để quyết định xem có getter và setter nào được tự động tạo hay không.
- Cú pháp:
@property (attributes) type propertyName;Ví dụ:
@property (nonatomic, strong) NSString *name;@synthesize:
@synthesizeđược sử dụng để tự động tạo getter và setter cho một thuộc tính đã được định nghĩa bằng@property.- Nếu bạn sử dụng
@propertymà không sử dụng@synthesize, trình biên dịch sẽ tự động tạo getter và setter cho bạn. - Nếu bạn muốn kiểm soát tên của biến backing, bạn có thể sử dụng
@synthesizeđể chỉ định tên của biến đó. - Cú pháp:
@synthesize propertyName = instanceVariableName;Ví dụ:
@synthesize name = _name;Trong những phiên bản mới của Objective-C và LLVM Compiler, việc sử dụng @synthesize đã trở nên tùy chọn và không còn bắt buộc. Trình biên dịch sẽ tự động tạo getter và setter cho bạn nếu bạn chỉ sử dụng @property mà không cần sử dụng @synthesize.
Tóm lại, @property dùng để khai báo một thuộc tính, trong khi @synthesize được sử dụng để tạo ra getter và setter tương ứng cho thuộc tính đó.
👋 Xin chào,
99,99% nội dung trên website này là nhờ hỏi ChatGPT, rồi mình biên tập lại để dễ hiểu và dùng lâu dài. Một vài bài tự viết, còn lại là “làm việc nhóm với AI” 😄
Mình lưu tại đây để tra cứu, học tập và chia sẻ với bạn bè. Nếu bạn tìm được gì hữu ích, cứ đọc thoải mái – miễn phí, không quảng cáo.
📱 Mình cũng có vài app cá nhân:
QuestionBank – Ôn thi vào 10 (iOS, Android)
TypingTest by QuestionBank (iOS, Android)
Cảm ơn bạn đã ghé qua!