Trong Objective-C, các từ khóa có ký tự @
phía trước được sử dụng để định nghĩa các khối mã, đặc điểm, và hạn chế phạm vi của mã. Dưới đây là một so sánh giữa một số từ khóa chính có ký tự @
trong Objective-C:
- @interface:
- Mục Đích: Được sử dụng để bắt đầu định nghĩa một lớp hoặc một giao diện.
- Ví Dụ:
@interface MyClass : NSObject
// Properties and methods go here
@end
@implementation:
- Mục Đích: Bắt đầu định nghĩa triển khai của một lớp, đặc điểm, hoặc một đối tượng.
- Ví Dụ:
@implementation MyClass
// Implementation of methods goes here
@end
@protocol:
- Mục Đích: Được sử dụng để định nghĩa một giao thức, một tập hợp các phương thức mà các lớp khác có thể triển khai.
- Ví Dụ:
@protocol MyProtocol
// Method declarations go here
@end
@property:
- Mục Đích: Được sử dụng để định nghĩa một thuộc tính của một đối tượng, đồng thời tự động tạo các getter và setter.
- Ví Dụ:
@property (nonatomic, strong) NSString *name;
@synthesize:
- Mục Đích: Sử dụng để tạo ra các getter và setter cho một thuộc tính được định nghĩa bằng
@property
. - Ví Dụ:
@synthesize name;
@dynamic:
- Mục Đích: Dùng để báo cho trình biên dịch biết rằng getter và setter cho một thuộc tính sẽ được triển khai ở runtime, không phải tại compile time.
- Ví Dụ:
@dynamic name;
@selector:
- Mục Đích: Được sử dụng để chuyển đổi một tên phương thức thành một kiểu dữ liệu
SEL
. - Ví Dụ:
SEL mySelector = @selector(doSomething);
Những từ khóa này đều đóng vai trò quan trọng trong cú pháp của Objective-C và giúp định nghĩa cấu trúc, đặc điểm, và hành vi của các lớp và đối tượng.
Xin chào các bạn!
Bài viết này dùng AI ChatGPT viết sau đó được tôi chọn lựa, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí mang tính cá nhân về các vấn đề của tôi và giải pháp. Tôi lưu tại website này để tra cứu và chia sẻ cho cộng đồng. Tôi tin rằng nội dung này giải quyết vấn đề của tôi thì cũng giải quyết vấn đề của các bạn.
Tôi là Minh, sống tại Hà Nội. Tôi là kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Hiện nay, công việc chính của tôi là phát triển các app trên iOS và Android. Các ngôn ngữ và framework yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh