【发布时间】:2012-11-25 17:07:42
【问题描述】:
Objective-C 支持子类化和类别,允许您向现有类添加方法。这是我的情况。
// Made at earlier than iOS 5.x
@interface MyVC : UIViewController
- (void)childViewControllers;
@end
iOS 5.0 之前没有childViewControllers 方法。我可以毫无顾虑地添加该方法。但是现在UIViewController 有一个名称为方法。如果我构建为 iOS 4.x 编写的遗留代码,该方法将被覆盖,并且会产生不可预知的结果。
是否有任何技术可以保护我的代码免受此类问题的影响?这可能发生在类别或(可能)其他事物上。
【问题讨论】:
-
你可以检查 UIViewController 是否实现它,如果是,调用 super
-
我主要关心名字冲突...即使方法同名,它的功能也可以完全不同。
-
啊,我假设这些方法会做同样的事情