gpt4 book ai didi

cocoa - [NSWindowController initWithWindowNibName :owner]? 中窗口 Controller 以外的所有者

转载 作者:行者123 更新时间:2023-12-03 16:15:24 28 4
gpt4 key购买 nike

我想知道的是我用的窗口 Controller 是如何初始化的

NSWindowController *c=[[NSWindowController alloc] initWithWindowNibName:@"Win" owner:myObj]

如果 myObj 不是 Controller 本身,知道它应该在 Win.xib 文件中控制哪个窗口吗?通常我将窗口 Controller 设置为所有者,以便我可以在 IB 中通过 socket 设置其窗口。内存管理是否全部由窗口 Controller 完成,即使它不是所有者?

最佳答案

窗口 Controller 将对顶级对象进行内存管理,即使它不是所有者。来自 NSWindowController class reference :

Regardless of who is the file’s owner, the window controller is responsible for freeing all top-level objects in the nib file it loads.

不过,窗口 Controller 通常是 NIB 的所有者,连接其窗口导出通常是它知道要控制哪个窗口的方式。还可以使用 -setWindow: 方法显式设置它。

可以想象,NSWindowController 会在 NIB 的顶级对象中搜索窗口来控制 socket 是否未连接,但我不认为它会这样做。

您是否观察到一些您不理解的行为?那是什么?

关于cocoa - [NSWindowController initWithWindowNibName :owner]? 中窗口 Controller 以外的所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14789887/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com