Mac应用程序的MVC架构问题

时间:2008-11-27 09:58:23

标签: objective-c cocoa macos

我有一个控制器类,我可以从中调用模型类的方法。现在从这个模型类方法我想连续更新作为控制器类的数据成员的textView对象。我在控制器类中有方法来编辑这个textView。我尝试从模型类方法创建一个控制器对象并编辑textView。虽然我没有得到任何错误,但它没有在textView中显示文本。如何让模型类使用控制器类方法连续显示文本.. ??是我正在创建一个本地控制器对象并引用其textView而不是原始控制器对象。

Controller.m文件:

- (void) notifyContentHasChanged:(NSInteger) block {
    NSString *str;
    str = [NSString stringWithFormat:@"Block Written Successfully: %d\n", block];
    [data insertText:str];
}

Model.m文件:

Controller * c = [[Controller alloc] init];
while (USB_SUCCESS(status)){
    DfuBlockCnt++;
    printf("\nBlocks Written Successfully: %d",DfuBlockCnt);
    [c notifyContentHasChanged:DfuBlockCnt];
}

1 个答案:

答案 0 :(得分:3)

您应该考虑使用KVO - 键值观察 - 这样您就可以让观察者为您完成所有工作。

我想知道您是否缺少与NSTextView的连接 - 如果您尝试将消息传递给Objective C中的nil对象,则不会出现错误。