我刚开始学习目标,并按照所有说明创建了我的第一个控制台应用程序,应该打印“哎哟!”每两秒钟,但虽然它是循环的,但它不会打印到控制台,我无法弄清楚原因。有人会介意我说我做错了吗?
我的.h文件包含以下内容:
#import <Foundation/Foundation.h>
@interface Logger : NSObject
- (void)sayOuch:(NSTimer *)t;
@end
我的.m文件包含以下内容:
#import "Logger.h"
@implementation Logger
- (void)sayOuch:(NSTimer *)t
{
NSLog(@"Ouch!");
}
@end
最后,我的main.m文件包含以下内容:
#import <Foundation/Foundation.h>
#import "Logger.h"
int main (int argc, const char * argv[])
{
@autoreleasepool {
Logger *logger = [[Logger alloc] init];
__unused NSTimer *timer = [NSTimer timerWithTimeInterval:2.0
target:logger
selector:@selector(sayOuch:)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop] run];
}
return 0;
}
事情是,每当我发出消息“哎哟!”没有打印到我的控制台。感谢您的帮助。
答案 0 :(得分:3)
更改
timerWithTimeInterval
与
scheduledTimerWithTimeInterval
所以你的代码改为工作:
#import <Foundation/Foundation.h>
#import "Logger.h"
int main (int argc, const char * argv[])
{
@autoreleasepool {
Logger *logger = [[Logger alloc] init];
__unused NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0
target:logger
selector:@selector(sayOuch:)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop] run];
}
return 0;
}