2012-01-02 9 views
0

私の個人的な好みは、インタフェースオブジェクトからのコード実行の分離です。 たとえば、ソーダクラスがあるとします。ソーダクラスには、体重、身長、ブランド名などのプロパティがあります。Objective-Cインタフェースオブジェクトと実装の分離

「Brain」と呼ばれる別のクラスもあります。

BrainにNSTableにSodaオブジェクトを設定させたいのですが、私は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

あなたのアプリケーションデリゲートにインターフェイスオブジェクトのみを宣言させることができます。ある時点で、テーブルのデータソースをテーブルデータソースプロトコル(NSTableViewDataSource)を実装するオブジェクトに設定する必要があります。そのオブジェクトは、テーブルの-reloadDataメソッドが呼び出されるたびにテーブルを埋めます。テーブルのデータソースは、コードまたはInterface Builderで設定できます。詳細はthe docsを参照してください。

+0

もちろん!ありがとうございました! – evdude100

関連する問題