2009-07-16 13 views
2

假設您有一個窗口筆尖,由加載筆尖的NSWindowController擁有。NSWindowController由綁定引起的循環依賴關係?

NSWindowController具有一個IBOutlet(通過Interface Builder)綁定到窗口上的UI控件。

確實,您不能通過釋放窗口控制器來釋放它,因爲綁定會在窗口控制器和控件之間產生不可破的循環依賴關係?

你知道任何可能導致類似循環依賴的常見情況嗎?

回答

2

在這樣的情況下,編寫一個重點突出的示例應用程序,並在調試器中觀察執行情況是理解事情如何工作的好方法。

通過文件的所有者進行簡單綁定不應導致保留週期(10.4和更高版本)。 NSWindowController(和NSViewController)採取措施避免此問題。

如果您遇到綁定導致保留週期的情況,有策略可以避免它們。 (有關特定設置的更多詳細信息可能需要超過特定建議。)