0

私はついに最初の小さな osx アプリを完成させることができました。私は自分自身をとても誇りに思っています! しかし、私が本当に従おうとしている obj-c MVC アプローチとはまだ混乱しています。さまざまなチュートリアルをすべて読んでも、最終的な手がかりは得られません。Hillegass の書籍「cocoa programming for MAC OS X」を使用しています。次のパターンは、コントローラー クラスでユーザー入力をtableviewビアにバインドするために使用されます。NSArrayController

- (IBAction)pushAdd:(id)sender {

    ToDoItem *newToDo = [[ToDoItem alloc] init];

    [newToDo setValue:[_inputName stringValue] forKey:@"name"];
    [newToDo setValue:[NSNumber numberWithDouble:[_inputNomValue doubleValue]] forKey:@"nomValue"];
    [newToDo setValue:[NSNumber numberWithDouble:[_inputTolerancePlus doubleValue]] forKey:@"tolerancePlus"];
    [newToDo setValue:[NSNumber numberWithDouble:[_inputToleranceMinus doubleValue]] forKey:@"toleranceMinus"];
    [newToDo setValue:[NSString stringWithFormat:@"%@",[_inputDistribution titleOfSelectedItem]] forKey:@"distribution"];
    [newToDo setValue:[NSString stringWithFormat:@"%@",[_inputDirection titleOfSelectedItem]] forKey:@"direction"];

    [toDoItemArrayController addObject:newToDo];

...

私の質問:

私のモデルクラスToDoItemはエンティティを作成するための青写真として使用されるためToDoItem、完全な情報はtoDoItemArrayController(モデルではなく) コントローラー内に保存されます。しかし、配列情報を別の場所で使用する必要がある場合はどうすればよいでしょうか? ToDoItemからのすべての情報を使用して、モデル クラスに追加の配列を定義する必要がありますtoDoItemArrayControllerか? これまでの私の MVC の理解では、モデルには、後でコントローラーによって処理されるすべての情報が含まれている必要があります。

4

1 に答える 1

1

コントローラー間のオブジェクトを使用して配列を渡すことができますToDoItemToDoItemただし、データ モデルに関係のない内部の配列を宣言することは、MVC パターンに従っていません。
他の場所で配列にアクセスするには、たとえば、シングルトンまたは AppDelegate のような一般的にアクセス可能なオブジェクトを使用して、それを渡すことができます。

于 2013-02-24T17:48:17.473 に答える