重複の可能性:
Objective Cのメソッドを定期的に呼び出す方法は?
ユーザーが画面に触れると、次のメソッドが呼び出されるアプリを作成しています。
- (void)explode:(int)x
ユーザーは画面を1回タッチするだけで済みますが、メソッドを0.1秒ごとに100回繰り返し呼び出して、呼び出さないようにする必要があります。
整数が渡されるメソッドにこのような「一時的な」タイマーを設定する方法はありますか?
重複の可能性:
Objective Cのメソッドを定期的に呼び出す方法は?
ユーザーが画面に触れると、次のメソッドが呼び出されるアプリを作成しています。
- (void)explode:(int)x
ユーザーは画面を1回タッチするだけで済みますが、メソッドを0.1秒ごとに100回繰り返し呼び出して、呼び出さないようにする必要があります。
整数が渡されるメソッドにこのような「一時的な」タイマーを設定する方法はありますか?
カウンターと「x」をタイマーのuserInfoに渡すことができます。これを試して:
タッチイベントをキャッチするメソッドでタイマーを作成し、カウンターとint'x'をuserInfoに渡します。
NSMutableDictionary *userInfo = [[NSMutableDictionary alloc] initWithCapacity:2];
[userInfo setValue:[NSNumber numberWithInt:x] forKey:@"x"];
[userInfo setValue:[NSNumber numberWithInt:0] forKey:@"counter"];
[NSTimer timerWithTimeInterval:0.1
target:self
selector:@selector(timerMethod:)
userInfo:userInfo
repeats:YES];
タイマーメソッドを作成し、userInfoの数を確認し、100回後にタイマーを無効にします。
- (void)timerMethod:(NSTimer *)timer
{
NSMutableDictionary *userInfo = timer.UserInfo;
int x = [[userInfo valueForKey:@"x"] intValue];
// your code here
int counter = [[userInfo valueForKey:@"counter"] intValue];
counter++;
if (counter >= 100)
{
[timer invalidate];
}
else
{
[userInfo setValue:[NSNumber numberWithInt:x] forKey:@"x"];
[userInfo setValue:[NSNumber numberWithInt:counter] forKey:@"counter"];
}
}
次のAppleドキュメントも参照してくださいNSTimer
。