如何在Cocoa中的两个类之间传递变量?

时间:2011-04-24 00:40:09

标签: objective-c class variables grid

我是Cocoa和Objective-C的新手。我目前正在开发一个程序,它将在CustomView中生成一个网格。为此,我有一个控制窗口(包含所有滑块/选项)和一个预览窗口(绘制网格)。这两个窗口附加到不同的类:GridPaperController类的控制窗口和GridView类的预览窗口。

假设我更改了控制窗口上的滑块。它旁边的标签随其值(在GridPaperController类中存储为变量)而更改。如何将此值发送到GridView类?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

在不相关的类之间传递信息有几种模式。您可以在控制器和其他两个视图控制器之间create a delegate。这种方法非常好,因为它具有高度的内聚性,并且减少了类之间的耦合。

第二种方法是发布notifications,以便可以为等待事件/信息的类发送消息。这又是一种减少不相关类之间耦合的模式。

答案 1 :(得分:0)

您可以将setter添加到您的班级:

@interface Photo : NSObject 
{ 
    NSString* caption;
    NSString* photographer; 
} 

- (void) setCaption: (NSString*)input; 
- (void) setPhotographer: (NSString*)input; 

@end 

方法实施:

- (void) setCaption: (NSString*)input 
{   
    [caption autorelease]; 
    caption = [input retain]; 
} 

- (void) setPhotographer: (NSString*)input 
{ 
    [photographer autorelease]; 
    photographer = [input retain]; 
}