这可能是以前问过的,但我不知道要搜索什么。这是我现在的层次结构:NSObject> FirstSubclass> SecondSubclass。但是我将在我的应用程序中实现一个新功能,这需要在满足特定条件时更改FirstSubclass中的一些细节。所以实际上我需要一个FirstSubclass和SecondSubclass之间的子类来覆盖FirstSubclass的行为。我不需要在SecondSubclass本身中覆盖事物,但是我需要某种类型的super
用于我拥有的所有不同的SecondSubclass子类。我可以改变FirstSubclass中的所有内容,使用“if if语句”,但首先我想确定是否没有其他选项。我需要一个“协议”吗?像在SecondSubclass : FirstSubclasslass <WeirdThingIDontKnow>
?有关子类别的问题
Q
有关子类别的问题
1
A
回答
0
这听起来像你需要ducktyping。在目标c中,可以使用respondsToSelector
,performSelector
或NSInvocation
来完成。这可以大大简化类的层次结构。
0
创建一个派生自FirstSubclass的新对象(比如InBetweenSubClass)并重写FirstSubclass的必要方法。然后将SecondSubclass更改为从InBetweenSubClass而不是FirstSubclass派生。
在Objective-C中没有“覆盖”等价物,你只需实现一个具有相同签名的方法,并且覆盖基类的方法。你也可以做这样的事情,如果特殊条件得到满足,使用新的方法,否则使用基类(超)类的方法:
-(void) test
{
if (self.specialcondition)
{
[self newTest];
}
else
{
[super test];
}
}
相关问题
- 1. 关于类别的问题
- 2. 类别子类别树问题javascript
- 3. Magento子类别问题
- 4. PHP foreach子类别问题
- 5. 问题magento中的相关类别
- 6. 在Laravel获得主类别子类别的问题
- 7. 问题有关类型UITabelView
- 8. 问题有关Python和类
- 9. Obj-c noob有关无子类型返回类型的子类化问题?
- 10. 问题:每个子类使用鉴别
- 11. 有关MongoDb类别层次结构用例的一些问题
- 12. 数据库设计问题 - 类别/子类别
- 13. MySQL仅选择拥有子类别或子类别的类别
- 14. UIButton类别问题
- 15. wordpress类别问题
- 16. 有关C子串的简单问题#
- 17. 关于MVC问题:子类DB活动
- 18. 有关Java的I/O类的问题
- 19. 类别/子类别:如何获得给定类别的所有子类别(它们的子类别)?
- 20. Symfony Parent子类别关系
- 21. 论坛类别的问题
- 22. WordPress的类别href问题
- 23. 有关类名的arduino C++问题
- 24. 问题有关Struts2的返回类型
- 25. 有关MySQL数据类型的问题
- 26. 有关值类和向量的问题
- 27. 有关类方法“forName()”的问题
- 28. WordPress的子类别与帖子标题
- 29. 关于函子的问题
- 30. 相关类别和具有产品计数的子类
Weell ...问题是什么? – Gobra 2010-07-21 18:44:56
编辑它以问我需要什么样的“东西”。 – Michael 2010-07-21 18:51:24