iPhoneアプリケーションの開発は非常に新しいです。私のiPhoneアプリからiCalにイベントを追加しています。ユーザーは、アプリからiCalに複数のイベントを一度に追加できます。ユーザーが50以上のイベントをiCalに追加すると、イベントはiCalに追加されず、アプリケーションがクラッシュすることになります。だから、私はアプリのクラッシュを避けたい。だから、私はforループの中でiCalに追加イベントを遅らせようと計画していた(ループは実行中)。どのようにしてForループを一時停止し、10秒の遅延後にforループを続行できますか?一方、forループは、一時停止した場所から10秒後に続行する必要があります。これどうやってするの?何か案は?私の問題を解決するのを助けてください?前もって感謝します。forループのiphoneの内部でNSTimerを使用するには?
0
A
答えて
1
あなたがしていることをする最善の方法はNSOperationQueue
ですが、少し技術的です。このような何か理解しやすいかもしれません:あなたは、イベントのリストを指定すると
NSMutableArray *events;
:
ヘッダー
events = /*....*/;
[self nextOp];
nextOp
方法:
-(void)nextOp {
// Do 10 events at a time.
int stop = MIN(10,[events count]);
for (int i = 0; i < stop; i++) {
//Add [events objectAtIndex:i] to iCal
}
// Remove these processed events.
[events removeObjectsInRange:NSMakeRange(0,stop)];
if ([events count] > 0) {
// We've still got more events to go, so schedule our next call
[self performSelector:@selector(nextOp) withObject:nil afterDelay:10];
} else {
[events release];
events = nil;
}
}
0
あなたはすべきですnot iOSのポーズループ。処理を迅速かつ同期的に完了できない場合は、ループを終了してループを含むメソッドを終了する必要があります。
ループの処理を完了するために、アプリケーションは完了デリゲート、タイマー、performselector、または操作キューからのコールバックのように、後でループの別の繰り返しを開始する必要があります。後者の方法には遅延が含まれる可能性があります。ループを構造化しない方法と、これを行うためにローカル状態を保存する方法を知る必要があります。コールバック付きのループを終了するのは、遅延 "GOTO"ステートメントとほぼ同じです。
NSTimer呼び出しがループ処理に役立つようにするには、ループとメソッドを終了して、タイマーのコールバックセレクタを呼び出す必要があります。
関連する問題
- 1. ループでのNSTimerの使用
- 2. forループの内部でArrays.asList()を使用する方法
- 3. forループ内での使用。
- 4. forループのデータをforループの内部に格納する方法は?
- 5. 内部for..inループ
- 6. C#Forループの内部メソッド
- 7. forループのconst内のES6の内部
- 8. forループ内のクロージャー、内部IIFEは何ですか?
- 9. JSX内でForループを使用
- 10. NSTimer iPhoneを使用したスライダー
- 11. Forループ内のカウンタの使用?
- 12. forループ内のifステートメントの使用
- 13. for内部ループをより効率的にするには?
- 14. FORループ内のOracle FORループ
- 15. 内部クラス内の "forループ"から整数を参照する
- 16. Forループ内のスクリプトをバッチで使用する
- 17. forループ内の変数でsedを使用するBashスクリプト?
- 18. ForループでperformSelectorを使用しますか? iPhone
- 19. iPhoneは - NSTimerは火
- 20. forループ内の変数にDBリンクを使用する方法
- 21. は、Forループの内部または外部の印刷ステートメントですか?
- 22. forループ内のループ
- 23. ループ内のforループで使用される値を変更する方法
- 24. forループ内でいくつかのforループを削除するには
- 25. forループ内にforループの配列を追加する
- 26. forループの使用
- 27. 複数のforループを使用するforループ
- 28. forループ内の配列に値をプッシュする(別のforループ内)JavaScript
- 29. async/for wait forループを使用する
- 30. コード内でforループを使用してテーブルを作成する
ありがとうございます。あなたのアイデアを自分のコードに取り入れます。ありがとう。 – Gopinath