分离Objective-C接口对象和实现

时间:2012-01-02 02:55:49

标签: objective-c interface delegates


我个人的偏好是代码执行与界面对象的分离。 例如,假设我有一个Soda课程。 Soda类具有重量,高度和品牌名称等属性。

说我还有另一个名为“大脑”的课程。

我希望Brain使用Soda对象填充NSTable,但我只希望我的AppDelegate类声明接口对象。


AppDelegate.h

@interface AppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSTableView * sodaTable;

@end

Brain.m

@implementation Brain : NSObject

- (void)aquireCaffine
{
    /*   Do stuff here that populates the sodaTable  */
}

任何形式的分离都可以。 我的意思是说我不希望appDelegate处理这个电话。 这意味着我不想对AppDelegate.h执行以下操作:

[self aquireCaffineUsingTable:sodaTable];

也许我正在做一些非常不符合Objective-C的事情,但我有我的偏好吗?

1 个答案:

答案 0 :(得分:1)

您可以让您的app委托仅声明接口对象。在某些时候,您需要将表的数据源设置为实现表数据源协议(NSTableViewDataSource)的对象。只要调用表的-reloadData方法,该对象就会填充表。您可以在代码或Interface Builder中设置表的数据源。有关详细信息,请参阅the docs

相关问题