0

我想從我的應用程序的模型內部深處調試日誌消息(NSStrings)到UI中的一個面板(每秒鐘2或3行),以呈現適量的調試日誌消息(NSStrings)。我預計在開發過程中主要需要這些,儘管我可能會將「控制檯」留在生產環境中。我試圖保持一個乾淨的MVC模式,因爲我不知道這個應用程序究竟會如何變化(這是一個側面項目模擬引擎,沒有任何商業用途。)正確使用NSNotificationCenter?

我已經實現了一種寫入日誌消息發送到我的NSWindowController子類中的視圖,方法是將一行添加到NSTextView。它工作正常。但是,我不希望我的模型 - 消息的來源 - 知道有關WindowController的任何信息,原因很明顯。所以:

  • NSNotificationCenter API似乎符合法案。可以?我的替代方案是一系列的日誌機制,將消息傳遞給模型的日誌方法(模型 - >文檔 - >窗口控制器 - >視圖),這很雜亂,或者讓WC充當模型日誌方法的代表(使WC採取一個簡單的協議。)再一次,這似乎有點令人費解。 KVO似乎不適合這種情況,因爲它不是一些模型狀態屬性正在改變。我錯過了什麼?

  • 我應該期待通過每秒鐘通過多次通知來關閉NSNotificationCenter而導致重大性能下降嗎?

編輯:我應該說,它確實有效,但是這是對的嗎?

謝謝

+0

NSLog影響性能。不要計劃每隔幾秒記錄一次。只根據需要進行記錄。 – Moshe 2012-07-30 17:41:49

+0

嗨@Moshe這不是關於NSLog,但謝謝。 – 2012-07-30 17:53:26

回答

0

每秒兩或三個通知根本不是性能命中。如果您感覺使用NSNotificationCenter,請使用它。對於日誌記錄機制,可能沒有必要,但是 - 對NSLog的簡單調用就夠了嗎?

+0

很高興知道。我特別想要在用戶界面中的信息;與NSLog無關。 – 2012-07-30 17:54:22

+0

那麼,不斷更新用戶界面有點恐怖......但在這種情況下,我們鼓勵不要將任何核心視圖控制器鏈接到輔助日誌記錄機制。 – 2012-07-30 17:56:29

+0

是的。 NSNotifications似乎是這樣做的最鬆散耦合的方式。它無論如何工作。謝謝 – 2012-07-30 18:20:07