如何知道哪个类叫另一个类?

时间:2012-02-27 15:36:56

标签: ios

我有A,B和B类课程。 C在iPhone项目中。当iPhone应用程序运行时,类(A或B)可以实例化类C的对象。我怎么能在C类中知道哪个类实例化了对象(A或B)?如果不向C添加ivar,有什么方法可以知道吗?我尝试使用超类,但我要么使用它错了,要么它不适合我正在尝试做的事情。

谢谢!

2 个答案:

答案 0 :(得分:1)

假设您发表评论说c类不受您的控制。

你可以继承c并在init中添加一个新的init方法initFromClass: (id) parent,你可以设置你想要的任何标志

答案 1 :(得分:1)

超类是对象继承的对象,而不是对象的创建者。

回传的一种方式是通过委托 - 你能得到(A或B)在C上设置委托属性吗?这有点像你想要避免的ivar,但使用协议它被认为是精细的OO代码。

知道C需要知道的原因会很好。他需要发送方法吗?代表团很棒。如果没有,那么使用William Bonar提到的自定义init方法是可能的。如果您正在使用ViewController,那么您可以使用诸如presentViewController之类的方法

祝你好运,

达明