простой тест NSTimer не работает - PullRequest
0 голосов
/ 08 ноября 2011

Я изучаю NSTimer, и после прочтения Документов я сделал этот простой тест.Насколько я понимаю, когда я вызываю viewDidLoad в main, viewDidLoad должен затем вызывать runTest через 3,0 секунды - но это не работает.Он прекрасно компилируется без ошибок, но не загружает runTest (без NSLog), пожалуйста, помогите ... спасибо.

#import "MyClass.h"
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

MyClass *trial = [[MyClass alloc]init];

[trial viewDidLoad]; ///// this should call viewDidLoad /////

[pool drain];
return 0;
}



#import <Foundation/Foundation.h>

@interface MyClass : NSObject {

NSTimer *aTimer;}

@property (nonatomic, retain) NSTimer *aTimer;

- (void)viewDidLoad;

- (void)runTest;

@end





#import "MyClass.h"

@implementation MyClass

@synthesize aTimer;

- (void)viewDidLoad {
    aTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self     selector:@selector(runTest) userInfo:nil repeats:NO];}

- (void) runTest {
NSLog(@"Working - runTest has loaded !");
aTimer = nil;
}
@end

1 Ответ

2 голосов
/ 08 ноября 2011

Так работать не будет. NSTimer требует runloop, который будет создан автоматически, когда вы создаете обычное приложение какао, а не инструмент командной строки Foundation.

Создайте таймер в методе applicationDidFinishLaunching делегата приложения или в init вашего объекта, если вы создадите его в главном кончике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...