我有一个UIViewControllerSubclass : UIViewController
类的类结构,其中UIViewControllerSubclass的唯一功能是#import UIViewController+Category.h
。我在一个类别中添加方法的原因是我也可以UITableViewControllerSubclass : UITableViewController
,#import UIViewController+Category.h
也是@interface UIViewController(Category)
- (void) method1;
- (void) method2;
@end
。众所周知,不要重复自己。
现在假设UIViewController + Category.h具有结构:
UIViewControllerSubclassSubclass : UIViewControllerSubclass
创建method1
的安全性如何,会覆盖{{1}}?我认为这会因为Objective-C的消息传递而起作用,但出于某种原因,我的直觉告诉我,我做错了。
答案 0 :(得分:7)
因为类别应用于UIViewController
所以一切都应该正常工作,因此UIViewController
的所有实例(包括子类)都可以访问这些方法。这没什么不安全的;这就是如何应用类别。