【发布时间】:2011-01-08 00:21:49
【问题描述】:
为了更好地理解我的应用程序中的启动、事件队列和方法,我正在尝试编写一个执行两件事的程序:在启动时播放哔声,每次用户点击按钮时播放。到目前为止,它仅在用户点击按钮时播放。我知道可能有多种方法可以播放启动哔声,但为了使用初始化代码,我想通过从 AppDelegate.m 文件的 applicationDidFinishLaunching 方法中调用我的哔声方法来完成。
这是我的代码:
日志.h
#import <Cocoa/Cocoa.h>
@interface Log : NSObject {
IBOutlet id button;
}
-(void)beepAndLog;
-(IBAction)buttonPressed:(id)sender;
@end
日志.m
#import "Log.h"
@implementation Log
-(void)beepAndLog {
NSLog(@"The Method Was Called!");
NSBeep();
}
-(IBAction)buttonPressed:(id)sender {
[self beepAndLog];
}
@end
applicationDidFinishLaunching 方法如下所示:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
[Log beepAndLog];
}
然而,在 applicationDidFinishLaunching 方法中,XCode 警告我
'Log' 可能不响应'+beepAndLog'
确实,没有哔声,日志内容如下:
方法响应[11401:a0f] +[日志 beepAndLog]:无法识别的选择器 发送到类 0x100002100
(“MethodResponse”是我的项目名称,顺便说一句)
我不确定为什么 Log 不会响应 beepAndLog,因为这是它的方法之一。我叫错了吗?我有一种感觉,对于更有经验的人来说,这将是非常明显的。我是新手。任何帮助,将不胜感激!谢谢!
【问题讨论】:
标签: objective-c cocoa methods initialization startup