2011-09-11 56 views
22

Tôi có một câu hỏi rất cơ bản về một số mã mẫu từ Apple. Trong tệp .m, khai báo lớp trông giống như sau:Nội dung bên trong dấu ngoặc đơn trong @interface và @implementation có nghĩa là gì?

@interface MyMovieViewController (OverlayView) 
[...] 
@end 

@interface MyMovieViewController (ViewController) 
[...] 
@end 

@implementation MyMovieViewController(ViewController) 
[...] 
@end 

@implementation MyMovieViewController (OverlayView) 
[...] 
@end 

@implementation MyMovieViewController 
[...] 
@end 

Full code here. Có vẻ như những thứ bên trong dấu ngoặc đơn ("OverlayView" và "ViewController") chỉ có ở đó để giúp chia nhỏ mã và làm cho nó dễ đọc hơn, nhưng không thực sự tác động đến việc thực thi mã. Nhưng tôi không muốn bị hiểu lầm một cái gì đó quan trọng, vì vậy tôi nghĩ rằng tôi muốn kiểm tra để chắc chắn.

Sự hiểu biết của tôi có đúng không? Cảm ơn!

Trả lời

20

Những được gọi là Categories và cho phép bạn thêm chức năng hơn nữa đến các lớp học của bạn.

Danh mục cho phép bạn thêm các phương thức vào lớp hiện tại — ngay cả với một phương pháp mà bạn không có nguồn. Danh mục là một tính năng mạnh mẽ cho phép bạn mở rộng chức năng của các lớp hiện có mà không có phân lớp phụ. Sử dụng các danh mục, bạn cũng có thể phân phối việc triển khai các lớp của riêng bạn trong một số tệp. Các tiện ích mở rộng lớp giống nhau, nhưng cho phép các API yêu cầu bổ sung được khai báo cho một lớp ở các vị trí khác ngoài lớp chính @interface block.

From the Apple docs on Categories and Extensions.

+0

docs Apple trên [Tùy Lớp học hiện tại] (https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html) – LopSae

Các vấn đề liên quan