NSWindowController由绑定引起的循环依赖?

时间:2009-07-16 00:56:21

标签: cocoa interface-builder cocoa-bindings

假设你有一个窗口笔尖,由一个加载笔尖的NSWindowController拥有。

NSWindowController将IBOutlet绑定(通过Interface Builder)到窗口上的UI控件。

您是否可以通过释放它来释放窗口控制器,因为绑定会导致窗口控制器和控件之间存在牢不可破的循环依赖关系?

您是否知道任何可能导致类似循环依赖的常见情况?

1 个答案:

答案 0 :(得分:2)

在这种情况下,编写一个有针对性的示例应用程序,并在调试器中观察执行是理解事物运作方式的好方法。

通过文件所有者进行简单绑定不应导致保留周期(在10.4及更高版本中)。 NSWindowController(和NSViewController)采取措施避免这个问题。

如果您遇到绑定导致保留周期的情况,则有策略可以避免它们。 (有关特定设置的更多详细信息可能需要通过特定建议。)