objective-c - Mac应用程序的MVC架构问题

标签 objective-c cocoa macos

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

Controller.m 文件:

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

模型.m 文件:

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

最佳答案

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

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

关于objective-c - Mac应用程序的MVC架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323350/

相关文章:

objective-c - Objective-C 中体系结构 x86_64 的 undefined symbol

cocoa - 在没有单独 Nib 的情况下更改 "lite mode app"的 OSX/Cocoa 应用程序菜单名称

ruby - 学习 MacRuby 的好资源

objective-c - 将 SKShapeNode 添加到 UIViewController (Objective-C)

ios - 'userNotificationCenter :didReceiveNotificationResponse 实现中的参数类型冲突

ios - 如何在自定义 iOS 应用程序扩展中关闭横向?

cocoa - Appkit/Quartz/CG 在自定义 View 中正确嵌套 NSTextView

iphone - 我应该验证 Foundation API 容器内的对象吗?

cocoa - 将自定义菜单项添加到 Finder 上下文菜单

c++ - 在 iPod Touch 上移植使用 cocos2d c++ 制作的游戏