Tôi có một danh mục trên NSDate và sẽ rất tiện lợi nếu nó có thể triển khai một giao thức mà tôi đã tạo trước đó. Điều này có khả thi không? cú pháp chính xác cho điều này là gì?
Câu trả lời:
Vâng, điều đó có thể. Cú pháp là:
@interface NSDate (CategoryName) <ProtocolName>
@end
@implementation NSDate (CategoryName)
@end
Đây là tài liệu của Apple về chủ đề này.
Cũng có thể thực hiện việc này bằng cách sử dụng tiện ích mở rộng lớp. Tôi rất thích điều này để tuân theo các giao thức ủy quyền một cách riêng tư. Làm như vậy sẽ ẩn chi tiết triển khai của việc trở thành đại biểu của một số lớp khỏi giao diện công khai và xóa phần phụ thuộc khỏi tiêu đề.