0

好的,所以我的问题本身就说明了我在问什么。
我有 3 个视图控制器。它们三个都继承自一个类(MainViewController)。
现在我想问的是,是否有可能在 Objective C 中假设我有另一个类,它有一些我不想包含在 MainViewController 类中的变量和函数,并将其传递给 ViewController 之一。
所以如果我给我的视图控制器编号,让另一个类是SecondClass。
第一个、第二个和第三个 ViewController 继承了 MainViewController 的函数和变量。
如果我希望第二个 ViewController 也继承 SecondClass,那么我可以在 Objective-C 中执行这种操作吗?

4

3 回答 3

5

Objective-C 是一种单继承语言。每个类只能从一个超类继承。

如果你绝对绝望,你可以解决这个问题,forwardingTargetForSelector:但更整洁和通常更聪明的事情是通过说第二个视图控制器SecondClass除了作为MainViewController.

您可以在UIWebView. 它不是的子类,UIScrollView但它使用滚动视图并通过属性向外部参与者公开该实例(从 iOS 5 开始)scrollView

于 2013-09-20T19:55:22.150 回答
2

Objective-C 不允许多重继承。查看这篇文章,了解使用组合的出色解决方案。

Objective-C 多重继承

于 2013-09-20T19:57:18.900 回答
0

在目标 C 中,不支持多重继承。相反,您可以使用协议或类别。此外,您还可以使用动态类型。查看以下链接。 http://support.apple.com/kb/TA45894

于 2013-09-20T20:23:14.363 回答