我只有一个nib文件,想要将某些元素连接到一个类(即AppDelegate)中的方法,而将某些元素连接到另一个类(仅是NSObject)。所以架构看起来像这样

buttonOne-> [mainClass设置]
buttonTwo-> [auxCalss设置]
textFieldOne-> mainClass.field
textFieldTwo-> auxClass.field

这两个[set]操作连接到两个类并且可以正常工作,但是只有textField一个连接到了主类,主类也是AppDelegate。

TextFieldTwo不起作用(通过auxClass中的[field setStringValue:]调用。auxClass的实例在mainClass applicationDidFinishLaunching方法中分配。

我认为这是问题所在-运行时无法将某些元素连接到auxClass,因为它尚不存在。但是,当我中断[auxClass set:]中的方法时,它表明auxClass.field与NULL以外的其他对象相连。

通常,除了最简单的示例以外,我认为这是一种不良的设计模式-除了类似选项卡视图的视图之外,其中两个选项卡的功能位于两个不同的类中。

在实例化auxClass时需要在AppDelegate的幕后进行操作吗?

最佳答案

您不应该在代码中分配/初始化auxClass的新副本。笔尖已经为您完成了。只需在mainClass中创建一个IBOutlet,然后在Interface Builder中将其连接到笔尖中的auxClass对象即可。参见此recent SO question

08-17 19:35