2013-08-29 20 views
8

I UIViewControllerSubclass tek fonksiyonu #import UIViewController+Category.h olan tip UIViewControllerSubclass : UIViewController, bir sınıf yapısı vardır. Ben de UITableViewControllerSubclass : UITableViewController, #import UIViewController+Category.h olacak hem de yapabilir böylece bir kategoride yöntemler eklendi nedenidir. Hepimizin bildiği gibi, kendini tekrar etme.Objective-C'de Kategori tanımlı bir yöntemi geçersiz kılmak güvenli midir?

@interface UIViewController(Category) 
- (void) method1; 
- (void) method2; 
@end 

o kadar güvenli UIViewControllerSubclassSubclass : UIViewControllerSubclass oluşturmak için, method1 geçersiz kılar:

Şimdi UIViewController + Category.h yapısına sahip olduğunu varsayalım? Bunun nedeni Amaç-C'nin mesajı geçen çalışacak varsayalım, ama nedense benim sezgi ben yanlış yapıyorum bana anlatıyor.

+1

Sen "ördek yazılan" olduğunu Objective-C hatırlamak gerekiyor. Bir sınıf bir yöntemi destekliyorsa, yöntem sınıfın .h dosyasında tanımlanmamış olsa bile, onu (güvenli şekilde) çağırabilirsiniz. (Eğer derleyici kontrolleri geçmiş gizlice nasıl size kalmış.) –

cevap

7

Kategori UIViewController'a uygulandığı için her şey iyi çalışmalıdır, bu nedenle alt sınıflar dahil olmak üzere UIViewController tüm örneklerinin yöntemlere erişmesi gerekir. Bu konuda güvensiz bir şey yok; kategorilerin uygulanması amaçlanmaktadır.

+1

Ben sadece kategori yöntemi olarak sıkıca örnek yöntemi olarak sınıfına bağlı değildir güvensiz çünkü "hissediyor" varsayalım. – paulrehkugler

İlgili konular