0

我设置了一个 PhoneGap 应用程序并挖掘了一些代码。在 AppDelegate 下有以下对象:

@property (nonatomic, strong) IBOutlet CDVViewController* viewController;

然而,再往下是这条线:

self.viewController = [[MainViewController alloc] init];

那条线实际上做了什么,因为 viewController 是一个 CDVViewController 对象,但是现在它似乎在说,或者至少将它转换为 MainViewController 对象。

MainViewController 也继承了 CDVViewController 所以它不应该像 MainViewController 一样开始有什么意义:

 @property (nonatomic, strong) IBOutlet MainViewController* viewController;
4

1 回答 1

0

它不是 @property (nonatomic, strong) IBOutlet MainViewController* viewController这样开始的,当 self.viewController 响应消息的选择器时,self.viewController 可以是类 CDVViewController 或 MainViewController,这取决于在运行时响应选择器的哪个类。

这称为多态性。你可以看看这个这个

于 2012-10-16T09:07:32.920 回答