2011-11-05 69 views
0

说例如,我有两个对象A和B,而对象B有一个叫做'update'的方法。在两个单独的对象之间发送消息

在对象A中我有一条线,它发送消息[objectB update]。 但是,我收到消息:

错误'objectB'未声明(首次在此函数中使用)。

事情是objectB在我的Appdelegate中与objectA一起声明。 似乎有点傻,objectA不能直接向objectB发送消息。 我意识到这可能是某种范围问题,但我的问题是我真的试图使objectA全局?还是我设置了一个来回传递指针的系统,让事情变得相当混乱?

+0

假设你是一个很好的面向对象程序员,在另一个程序中使用ObjectA类。它可以假设objectB将存在? – sosborn

回答

1

由于objectB应用程序代理的成员,因此可以像这样访问它。

YourAppDelegate *appDelegate; 
appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate]; 
[appDelegate.objectB update]; 
2

借此:

[self.objectB update]; 

而且你AppDelegate.m,你必须这样写:

@synthesize objectB; 

我相信,它的对象是私人或不getter方法。