Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 正确使用NSNotificationCenter?_Objective C_Macos_Model View Controller_Nsnotificationcenter - Fatal编程技术网

Objective c 正确使用NSNotificationCenter?

Objective c 正确使用NSNotificationCenter?,objective-c,macos,model-view-controller,nsnotificationcenter,Objective C,Macos,Model View Controller,Nsnotificationcenter,我希望以每秒2或3行的顺序,从我的应用程序模型的深处向UI中的面板显示中等数量的调试和日志记录消息(NSStrings)。我预计在开发过程中大部分时间都会用到它,尽管我可能会将“控制台”留在生产环境中。我试图保持一个干净的MVC模式,因为我不知道这个应用程序到底会变成什么样子(它是一个辅助项目模拟引擎,没有商业价值) 我已经实现了一种方法,通过在NSTextView中追加一行,将日志消息写入NSWindowController子类中的视图。它很好用。然而,我不想让我的模型(消息的来源)知道任何关

我希望以每秒2或3行的顺序,从我的应用程序模型的深处向UI中的面板显示中等数量的调试和日志记录消息(NSStrings)。我预计在开发过程中大部分时间都会用到它,尽管我可能会将“控制台”留在生产环境中。我试图保持一个干净的MVC模式,因为我不知道这个应用程序到底会变成什么样子(它是一个辅助项目模拟引擎,没有商业价值)

我已经实现了一种方法,通过在NSTextView中追加一行,将日志消息写入NSWindowController子类中的视图。它很好用。然而,我不想让我的模型(消息的来源)知道任何关于WindowController的事情,原因很明显。因此:

  • NSNotificationCenter API似乎符合要求。是吗?我的替代方案是一系列日志机制,它们将消息传递到链上(Model->Document->WindowController->View),这很混乱,或者让WC充当模型日志方法的代理(使WC采用一个简单的协议)。同样,这似乎有点混乱。KVO似乎不太适合这种情况,因为它不是一些正在改变的模型状态属性。我错过什么了吗

  • 每秒使用多个通知猛烈抨击NSNotificationCenter是否会对性能造成重大影响

编辑:我应该说,它确实有效,但它是对的吗


谢谢

每秒两到三次通知根本不影响性能。如果您想使用NSNotificationCenter,请使用它。但是,对于日志记录机制来说,这可能是不必要的-对NSLog的简单调用就足够了吗?

NSLog会影响性能。不要计划每隔几秒钟记录一次日志。只根据需要记录。嗨@Moshe,这不是关于NSLog的,但是谢谢。很高兴知道。我特别想要UI中的信息;与NSLog无关。嗯,持续更新UI有点可怕。。。当然,在这种情况下,我们建议不要将任何核心视图控制器链接到辅助日志机制。NSNotifications似乎是实现这一点的最松散耦合的方式。不管怎么说,它是有效的。谢谢