好的,所以我的问题本身就说明了我在问什么。
我有 3 个视图控制器。它们三个都继承自一个类(MainViewController)。
现在我想问的是,是否有可能在 Objective C 中假设我有另一个类,它有一些我不想包含在 MainViewController 类中的变量和函数,并将其传递给 ViewController 之一。
所以如果我给我的视图控制器编号,让另一个类是SecondClass。
第一个、第二个和第三个 ViewController 继承了 MainViewController 的函数和变量。
如果我希望第二个 ViewController 也继承 SecondClass,那么我可以在 Objective-C 中执行这种操作吗?
问问题
225 次
3 回答
5
Objective-C 是一种单继承语言。每个类只能从一个超类继承。
如果你绝对绝望,你可以解决这个问题,forwardingTargetForSelector:
但更整洁和通常更聪明的事情是通过说第二个视图控制器SecondClass
除了作为MainViewController
.
您可以在UIWebView
. 它不是的子类,UIScrollView
但它使用滚动视图并通过属性向外部参与者公开该实例(从 iOS 5 开始)scrollView
。
于 2013-09-20T19:55:22.150 回答
2
Objective-C 不允许多重继承。查看这篇文章,了解使用组合的出色解决方案。
于 2013-09-20T19:57:18.900 回答
0
在目标 C 中,不支持多重继承。相反,您可以使用协议或类别。此外,您还可以使用动态类型。查看以下链接。 http://support.apple.com/kb/TA45894
于 2013-09-20T20:23:14.363 回答