为什么我的目标没有打印到控制台?

时间:2012-01-27 14:59:17

标签: objective-c cocoa

我刚开始学习目标,并按照所有说明创建了我的第一个控制台应用程序,应该打印“哎哟!”每两秒钟,但虽然它是循环的,但它不会打印到控制台,我无法弄清楚原因。有人会介意我说我做错了吗?

我的.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;
}

事情是,每当我发出消息“哎哟!”没有打印到我的控制台。感谢您的帮助。

1 个答案:

答案 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;
}