gpt4 book ai didi

Cocoa:NIB 文件创建的实例的 var 名称是什么?

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

当 Cocoa NIB 文件实例化自定义 Controller 对象的实例时,该自定义 Controller 实例分配给的变量的名称是什么?

如果不清楚,如果您手动创建该类的实例,您将执行以下操作:

MyControllerClass *myVar = [[MyControllerClass alloc] init];

在幕后执行此操作时,NIB 使用什么相当于“myVar”?

最佳答案

应用程序编译后就没有变量名之类的东西了,所以这个问题没有多大意义。在您的示例中,myVar 对于您(程序员)来说只是一个方便的标签,一旦您的源代码编译为二进制代码,它就不再以任何方式存在。

当您将对象放入 nib 文件中时,它会被存档,然后在运行时取消存档。如果您希望能够获取对已存档在 nib 文件中的对象的引用,则需要使用 socket ,这意味着您在存在的类中声明一个 IBOutlet 实例变量在 nib 文件中,然后将该 socket 连接到要在 Interface Builder 中引用的 nib 中的对象。实例变量与您在示例中声明的堆栈变量不同,可以在运行时引用。

通常,您会拥有一个“拥有” Nib 的对象。通常,nib 由 NSWindowControllerNSViewController 的实例加载,窗口或 View Controller 在 nib 文件中表示为文件所有者。如果您在窗口/ View Controller 中声明 socket ,则可以将 socket 从文件所有者连接到 Interface Builder 中的对象。

因此,为了澄清,您需要从同一 Nib 中的其他对象引用 Nib 中的对象。第二个对象在实例变量上使用 IBOutlet 关键字声明一个 socket ,如下所示:

@interface SomeOtherObject : NSObject
{
IBOutlet SomeObject* anObject;
}
@end

在 Interface Builder 中,您可以将 SomeOtherObject 实例的 anObject 导出连接到第一个 SomeObject 实例。您可以通过按住 Control 键从一个对象拖动到另一个对象来完成此操作,也可以在 Interface Builder 检查器的连接面板中完成此操作。

然后,您可以通过 SomeOtherObject 代码中的变量名称 anObject 引用您的 SomeObject 实例。

关于Cocoa:NIB 文件创建的实例的 var 名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2197996/

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