2012-02-18 15 views
2

3秒ごとに "New Version"と表示されることを期待していますが、そうではありません。NSTimerが動作していない

Car.h

#import <Foundation/Foundation.h> 

@interface Car : NSObject 


-(void)displayVersion; 
@end 

Car.m

#import "Car.h" 

@implementation Car 

-(void)displayVersion 
{ 
    NSLog(@"New version"); 
} 

@end 

main.cの

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

int main (int argc, const char * argv[]) 
{ 
    @autoreleasepool 
    { 
     Car *ford = [[Car alloc]init]; 

     [NSTimer scheduledTimerWithTimeInterval:3 
             target:ford 
             selector:@selector(displayVersion) 
             userInfo:nil 
             repeats:YES]; 
    } 
    return 0; 
} 

はここに何が間違っているのですか?

PS:私は「あなたの投稿は、コードセクションを説明するための多くのコンテキストを持っていない。より明確にあなたのシナリオを説明してください」ということ嫌い

を私はコードは、問題の最良の説明だと思います!

答えて

5

NSTimerは動作するNSRunLoopに依存します。タイマーを作成してスケジュールするとすぐにプログラムが終了し、NSRunLoopは決して設定されません。通常、CocoaアプリでNSApplicationMain()main()に呼び出すと、メイン実行ループがセットアップされ、「回転」します。 XcodeのデフォルトのCocoaアプリケーションテンプレートを使用して新しいプロジェクトを作成し、NSApplicationDelegateの-(void)applicationDidFinishLaunching:メソッドでタイマーを作成する必要があります。

関連する問題