0

我终于完成了我的第一个小 osx 应用程序,我为自己感到骄傲!但是我仍然对我真正尝试遵循的 obj-c MVC 方法感到困惑。阅读所有不同的教程并没有给我最后的线索。我使用 Hillegass 的书“MAC OS X 的可可编程”。以下模式用于将用户输入与我的控制器类中的tableviewvia绑定: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

您可以使用控制器之间的对象传递数组ToDoItem。但是在其中声明一个与您的数据模型无关的数组ToDoItem将不符合 MVC 模式。
要在其他地方访问数组,您可以将其传递给其他地方,例如,可能使用单例或通常可访问的对象,如 AppDelegate。

于 2013-02-24T17:48:17.473 回答