web-dev-qa-db-ja.com

IOS-間隔固有のタイマーの作成と使用

私は初心者ですIOS開発者ですが、Android開発の経験が豊富です。私の質問は、間隔固有のタイマーの作成と使用に関するものです。

Android私は簡単に次のようなタイマーを作ることができます:

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

            TimedMethod();
        }

    }, 0, 1000);

ここで、間隔は1000 MSであり、メソッドTimedMethod()がティックごとに呼び出されます。 IOSで同様の機能を実装するにはどうすればよいですか?

読んでくれてありがとう!どんな助けでも素晴らしいでしょう! :-)

19
user879702

次のように繰り返し NSTimer を使用できます。

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

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

}
43
Jacob Relkin

使用する

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

上記のメソッドを呼び出したのと同じクラスで、timerCallbackというメソッドを作成します。これは、タイマーが起動するたびに呼び出されます。 1000ミリ秒ごと。

5
Benjamin Mayo

Swiftの場合:

10秒ごとにuploadメソッドを呼び出す以下の行を使用してタイマーオブジェクトを作成します。 がmethodSignatureForSelectorを実装していない場合は、NSObjectを使用してクラスを拡張します。詳細についてはこれを読んでください クラスYのオブジェクトXはSwiftのmethodSignatureForSelectorを実装していません

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

func upload() {
        print("hi")
    }
0
2ank3th

FoundationFrameworkのNSTimer.hファイルにある以下のメソッドを使用します

構文:

+ (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