2011-08-10 6 views
19

私は初心者のIOS開発者ですが、私はAndroid開発の経験が豊富です。私の質問は、インターバル固有のタイマーの作成と使用に関するものです。間隔がMSと方法TimedMethod()は、すべての目盛りに呼び出された1000IOS - インターバル固有タイマーの作成と使用

timedTimer = new Timer(); 
    timedTimer.scheduleAtFixedRate(new TimerTask() { 
     @Override 
     public void run() { 

      TimedMethod(); 
     } 

    }, 0, 1000); 

はアンドロイドでは、私は簡単にこのようなタイマーを作ることができます。 IOSで同様の機能を実装するにはどうすればよいですか?

お読みいただきありがとうございます!どんな助けでも素晴らしいでしょう! :-)

答えて

43

あなたはそうのような繰り返しNSTimer使用することができます。timerCallbackというメソッドを作成し、あなたが上記のメソッドを呼び出したのと同じクラスで

- (void) startTimer { 
    [NSTimer scheduledTimerWithTimeInterval:1 
            target:self 
            selector:@selector(tick:) 
            userInfo:nil 
            repeats:YES]; 
} 

- (void) tick:(NSTimer *) timer { 
    //do something here.. 

} 
5

使用

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerCallback) userInfo:nil repeats:YES]; 

を。これはタイマーが起動するたびに呼び出されます。 1000ミリ秒ごとに。財団フレームワークのNSTimer.hファイルに存在する方法以下

+0

これは間違っています。 'scheduledTimerWithTimeInterval:'は、最初の引数がミリ秒ではなく*秒*であることを前提としています。 –

+1

それを修正してくれてありがとう。回答が修正されました。 –

0

使用

構文:

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; 

使用法:スウィフトのために

#define kSyncTimerLength 4 //Declare globally 
-(void) timerActivityFunction; //Declare in interface 

[NSTimer scheduledTimerWithTimeInterval:kSyncTimerLength target:self 
     selector:@selector(timerActivityFunction) userInfo:nil repeats:NO]; 

-(void) timerActivityFunction { 
    // perform timer task over-here 
} 
0

タイマーを作成します。 uplを呼び出す以下の行を使用するオブジェクト10秒ごとにoadメソッドを実行します。 を取得した場合は、methodSignatureForSelectorを実装しません。 NSObjectでクラスを拡張します。詳細はこちらを参照してくださいObject X of class Y does not implement methodSignatureForSelector in Swift

timer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: "upload", userInfo: nil, repeats: true) 

func upload() { 
     print("hi") 
    } 
関連する問題