如何获取超类委托并从子类更新超类中的变量

时间:2011-02-16 18:53:00

标签: iphone

 @interface first{

     nsstring one;
     second secondobject;

 }

 @interface second{

     nsstring two;

 }

在第二类的上述类中我想更新第一个类“one”字符串。

我知道我们可以从第一个类

更新“两个”字符串

但我想从第二课

更新字符串“one”
  • 不应使用appdelegate

  • 不应使用继承

*我想知道我们的AppDelegate有[[uiapplication sharedapplication]delegate]

通过获得appdelegate的委托,我们可以访问appDelegate类的属性

像这样我们怎样才能获得第一类的委托并从第二类中访问第一类的属性。

如果树结构的图片教程请指定链接

这是我的结构

2 个答案:

答案 0 :(得分:1)

您似乎并不真正理解代表的含义及其用途。 在您的示例类中,首先聚合(包含)第二类的实例。这意味着对该类的引用是一个ivar。您可以先从类中访问该实例的所有公共成员,属性和方法。   如果要访问超类的ivars,那么就可以像在子类中声明它们一样。   当您需要在执行期间通知另一个对象时,会使用委托。对象通常对委托具有弱引用(它们不保留)。

所以我认为最好的选择是阅读一些关于面向对象编程的好书。关于那个

,这非常好book

答案 1 :(得分:0)

您可以将指针从第一个类传递到第二个类,第二个可以使用它来调用方法或访问第一个类中的数据成员。

或者如果first是单身类(如UIApplication),您可以设置sharedApplication可以调用的类方法(如second)对first对象的引用。

通常,使用MVC模式构建iPhone应用程序有助于减少这些纠结。

相关问题