iPhone アプリの for ループ内で遅延を設定しようとしています。基本的に、いくつかのアクションを含む for ループがあり、各アクションの間に 1 秒の遅延が必要です。
for ループ { アクション 1、遅延 1 秒、アクション 2、遅延 1 秒、アクション 3、遅延 1 秒}
これをどのようにコーディングしますか?
iPhone アプリの for ループ内で遅延を設定しようとしています。基本的に、いくつかのアクションを含む for ループがあり、各アクションの間に 1 秒の遅延が必要です。
for ループ { アクション 1、遅延 1 秒、アクション 2、遅延 1 秒、アクション 3、遅延 1 秒}
これをどのようにコーディングしますか?
for (loop) {
[self action1];
[self performSelector:@selector(action2) withObject:nil afterDelay:1.0];
[self performSelector:@selector(action3) withObject:nil afterDelay:1.0];
}
これがあなたが探しているものであることを願っています!!
編集
これを試してください。現在のメソッドの実行が終了し、次のメソッドに移動します。
for (loop) {
[self performSelectorOnMainThread:@selector(action1) withObject:nil waitUntilDone:YES];
[self performSelectorOnMainThread:@selector(action2) withObject:nil waitUntilDone:YES];
[self performSelectorOnMainThread:@selector(action3) withObject:nil waitUntilDone:YES];
}
これには for ループは含まれませんが、アクションのリストを受け取り、遅延を増やしながら実行します。
NSArray *selectorStrings = @[ @"action1", @"action2", @"action3" ];
[selectorStrings enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
SEL selector = NSSelectorFromString((NSString *)obj);
NSTimeInterval delay = (NSTimeInterval)idx;
[self performSelector:selector withObjet:nil afterDelay:delay];
}];
お役に立てれば!ご不明な点がございましたら、お知らせください。