Trong ngôn ngữ Objective-C, @interface được sử dụng để định nghĩa giao diện của một lớp, cũng như khai báo các thuộc tính và phương thức mà lớp đó cung cấp. @interface cung cấp thông tin về cách một đối tượng của lớp đó có thể tương tác với bên ngoài. Dưới đây là một tổng quan về cú pháp của @interface:
Mục Lục
Cú Pháp Cơ Bản:
@interface ClassName : SuperclassName <Protocols>
// Properties and methods go here
@end@interface: Từ khóa bắt đầu khai báo giao diện của một lớp.ClassName: Tên của lớp mà bạn đang định nghĩa.: SuperclassName: (Tùy chọn) Tên của lớp cha mà lớp hiện tại kế thừa từ.<Protocols>: (Tùy chọn) Danh sách các giao thức mà lớp tuân thủ.
Ví Dụ:
@interface Car : NSObject <SpeedControl, FuelEfficiency>
// Properties and methods go here
@endThuộc Tính (Properties):
- Khai Báo:
@property (attributes) type propertyName;@property: Bắt đầu khai báo một thuộc tính.attributes: Thuộc tính và quy tắc của thuộc tính.type: Kiểu dữ liệu của thuộc tính.propertyName: Tên của thuộc tính.
Ví Dụ:
@property (nonatomic, strong) NSString *model;Phương Thức (Methods):
- Khai Báo:
- (returnType)methodName;-: Phương thức đối tượng (instance method).+: Phương thức lớp (class method).returnType: Kiểu dữ liệu của giá trị trả về (nếu có).methodName: Tên của phương thức.
Ví Dụ:
- (void)startEngine;
+ (void)info;Biến Thành Viên (Instance Variables):
- Khai Báo:
{
// Instance variables go here
}Ví Dụ:
{
NSInteger speed;
NSString *color;
}Mục Đích:
- Định Nghĩa Lớp:
@interfacegiúp định nghĩa cấu trúc và các thành phần chính của một lớp.
- Khai Báo Thuộc Tính và Phương Thức:
- Khai báo các thuộc tính và phương thức mà lớp cung cấp cho bên ngoài.
- Tương Thích Đa Nền Tảng:
- Cho phép khai báo phần chung của một lớp, có thể được sử dụng trên nhiều nền tảng (ví dụ: iOS và macOS).
Lưu Ý Quan Trọng:
@interfaceđược đặt trong file.hcủa một lớp.- Trong mô hình quy trình của Objective-C,
@interfacethường được kết hợp với@implementationtrong file.mđể định nghĩa hoàn chỉnh một lớp.
Tóm lại, @interface là một phần quan trọng trong việc định nghĩa cấu trúc và giao diện của một lớp trong Objective-C.