2012-07-16 34 views
12

Tôi đang cố gắng lập kế hoạch cách thêm một vài phương thức vào tất cả các trường hợp của một số đối tượng nhất định. Tôi nghĩ rằng thêm một thể loại cho đối tượng cha mẹ (UIViewController) sẽ làm việc cho những gì tôi muốn làm, nhưng tôi có thể ghi đè lên một phương pháp được thêm vào theo cách này? Hầu hết thời gian các lớp con sẽ sử dụng các phương thức mặc định nhưng tôi biết rằng tôi sẽ cần ghi đè phương thức ít nhất một lần.Các phương pháp danh mục có thể bị ghi đè không? IOS

Ngoài ra, tôi nên cân nhắc phương pháp nào khác cho những gì tôi đang cố gắng làm?

Ví dụ về những gì tôi đang cố gắng làm:

Tôi có một bộ đối tượng hoạt động như trang của một tạp chí. Các trang này là các lớp con của UIViewControllers. Tôi muốn thêm các phương thức để tải, lưu và tương tự. Trong một lớp journal (Subclass của NSObject), tôi có một mảng lưu trữ các thể hiện của mỗi trang Journal. Tôi muốn nó vì vậy tôi có thể chọn một trang từ mảng và chạy trên các phương thức mà không cần phải biết lớp đối tượng cụ thể vì tất cả chúng đều có các phương thức.

Trả lời

22

Câu trả lời ngắn gọn: có, bạn có thể. Đối với các mục đích của các phương thức thể loại kế thừa trên một lớp cha được xử lý như các phương thức thực sự được định nghĩa trong lớp cha và có thể được ghi đè theo cùng một cách.

+0

Điều đó có ý nghĩa, nhưng tôi có cảm giác câu trả lời dài có thể tuyên bố một cái gì đó như "Apple không aprove này" hoặc cái gì khác như thế. – RMDan

+8

Apple không chấp thuận việc sử dụng một danh mục trên lớp con để ghi đè lên một phương thức trong lớp cha, nhưng không có gì sai khi sử dụng một phương thức trong một lớp con để ghi đè lên một thể loại trên một lớp cha. Trong thực tế, bất cứ khi nào bạn phân lớp một lớp khung công tác có một cơ hội tốt bạn đang làm điều này mà không nhận ra nó. –

+0

Cảm ơn bạn đã trả lời, nhưng tôi tìm thấy một cách kỳ lạ để làm những gì tôi muốn. Không có gì sai với câu trả lời của bạn, chỉ cần nhìn qua mã của tôi và tìm thấy một điểm beter để làm mã bổ sung tôi cần thiết mà không cần phải thêm phương pháp. – RMDan

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