【发布时间】:2010-12-29 16:14:39
【问题描述】:
我有一个 AppController 类,它以通常的方式在我的应用中处理视图/控件。
在 IB 中我的应用程序主窗口上有一个按钮,它导致 AppController 实例化一个新窗口控制器 (accountPanelController) 并显示该辅助窗口:
- (IBAction) showAccountPanel:(id) sender
{
//Is accountController nil?
if (!accountPanelController) {
accountPanelController = [[AccountPanelController alloc] init];
}
[accountPanelController showWindow:self];
}
当新窗口完成后,我想将从辅助窗口控制器收集的数据发送到 AppController 中的一个方法:
- (IBAction) close: (id) sender
{
NSLog(@"Close detected");
[AppController addAccount:0];
[self close];
}
但是,当我尝试从新窗口控制器调用 AppController 中的 addAccount 方法时,我收到“'AppController' 可能无法响应 '+addAccount'”警告。
这似乎与 AppController 是一个类而不是对象实例化有关,因为 AppController 中的方法称为 -addAccount(而不是警告中报告的 +addAccount)。实际上,如果我将目标方法的名称更改为 +addAccount 而不是 -addAccount,则不会出现警告(但程序在执行时崩溃)。
鉴于我自己实际上并没有实例化 AppController(我猜在 NIB 启动期间会以某种方式发生),有没有人知道如何将数据发送到 AppController 方法?通知似乎有点矫枉过正......
非常感谢。
【问题讨论】:
标签: objective-c class methods