2011-11-05 70 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方法。