在Objective-C中覆盖类别定义的方法是否安全?

时间:2013-08-29 14:14:32

标签: objective-c objective-c-category

我有一个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的消息传递而起作用,但出于某种原因,我的直觉告诉我,我做错了。

1 个答案:

答案 0 :(得分:7)

因为类别应用于UIViewController所以一切都应该正常工作,因此UIViewController的所有实例(包括子类)都可以访问这些方法。这没什么不安全的;这就是如何应用类别。