Чтобы лучше понять запуск, очередь событий и методы в моем приложении, я пытаюсь написать программу, которая выполняет две вещи: воспроизводит звуковой сигнал при запуске и каждый раз, когда пользователь нажимает кнопку. Пока он играет только тогда, когда пользователь нажимает кнопку. Я знаю, что может быть несколько способов заставить звуковой сигнал запуска воспроизводиться, но для работы с кодом инициализации я хочу сделать это, вызвав мой метод звукового сигнала из метода applicationDidFinishLaunching файла AppDelegate.m.
Вот мой код:
Log.h
#import <Cocoa/Cocoa.h>
@interface Log : NSObject {
IBOutlet id button;
}
-(void)beepAndLog;
-(IBAction)buttonPressed:(id)sender;
@end
Log.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 предупреждает меня, что
«Журнал» может не отвечать на «+ beepAndLog»
и действительно, нет звукового сигнала, и журнал выглядит следующим образом:
MethodResponse [11401: a0f] + [Log
beepAndLog]: нераспознанный селектор
отправлено в класс 0x100002100
("MethodResponse" - это название моего проекта, кстати)
Я не уверен, почему Log не отвечает на beepAndLog, поскольку это один из его методов. Я неправильно это называю? У меня есть ощущение, что это будет болезненно очевидно для вас, более опытных людей. Я новичок. Любая помощь будет оценена! Спасибо!