【发布时间】:2012-07-30 17:29:07
【问题描述】:
我想将适量的调试和日志消息 (NSString) 从我的应用模型深处呈现到 UI 中的面板,大约每秒 2 或 3 行。我预计在开发过程中主要需要这个,尽管我可能会将“控制台”留在生产中。我试图保持一个干净的 MVC 模式,因为我不知道这个应用程序会变成什么样子(它是一个辅助项目模拟引擎,没有商业用途。)
我已经实现了一种方法,通过在 NSTextView 中附加一行来将日志消息写入我的 NSWindowController 子类中的视图。它工作正常。但是,出于显而易见的原因,我不希望我的模型(消息的来源)了解有关 WindowController 的任何信息。所以:
NSNotificationCenter API 似乎符合要求。可以?我的替代方案是一系列日志机制,将消息向上传递链(模型->文档->窗口控制器->视图),这很混乱,或者让 WC 充当模型日志方法的委托(使 WC采用一个简单的协议。)再一次,这似乎有点草率。 KVO 似乎不太适合这个,因为它不是一些模型状态属性正在改变。我错过了什么吗?
我是否应该期望通过每秒发送多个通知来猛击 NSNotificationCenter 会显着影响性能?
编辑:我应该说,它确实有效,但是对吗?
谢谢
【问题讨论】:
-
NSLog 影响性能。不要计划每隔几秒钟记录一次。仅在需要时记录。
-
嗨@Moshe,这不是关于 NSLog,但谢谢。
标签: objective-c macos model-view-controller nsnotificationcenter