對於iPhone應用程序開發來說,這是非常新穎的。我從我的iPhone應用程序添加事件到iCal。用戶可以從應用程序一次向iCal添加多個事件。如果用戶將以上50個事件添加到iCal,則該事件不會添加到iCal中,並且應用程序崩潰。所以,我想避免應用程序崩潰。所以,我計劃在for循環中延遲添加事件到iCal(while循環處於運行狀態)。我如何暫停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
你應該不是在iOS上暫停循環。如果無法及時並同步地完成處理,則應退出循環並退出包含循環的方法。
爲了完成循環的處理,您的應用程序應該稍後啓動循環的另一次迭代,例如從完成委託,計時器,執行選擇器或操作隊列進行回調。後一種方法可能包括延遲。您將必須知道如何解構循環以及如何保存本地狀態來執行此操作。用回調退出迴路大致相當於延遲的「GOTO」語句。
對於NSTimer調用在循環處理中很有用,您需要退出循環和方法,因爲只有這樣纔會調用定時器的回調選擇器。
相關問題
- 1. NSTimer in for循環
- 2. 如何使用for循環$ q.all內angularjs
- 3. 如何使用循環2 nstimer?
- 4. 如何使用for循環
- 5. 如何使用for循環
- 6. 如何獲得NSTimer循環
- 7. 如何在此腳本的for循環中使用for循環?
- 8. 如果使用內for循環
- 9. 內for循環
- 10. 在For循環中使用performSelector? iPhone
- 11. 甲骨文FOR循環內FOR循環
- 12. for循環for循環內c
- 13. linq for for循環內foreach循環
- 14. 使用數組for循環for循環
- 15. Asynchronus for iphone中的循環
- 16. for iPhone中的循環
- 17. 使用IF內部FOR循環的Python
- 18. 如何在不使用NSTimer的情況下在iPhone上製作遊戲循環
- 19. 如何gettext的使用For循環
- 20. 如何在jQuery的使用for循環
- 21. iPhone SDK - 優化for循環
- 22. 延遲在for循環 - iPhone
- 23. for循環內的foreach;保持循環
- 24. for循環內的foreach循環java
- 25. JavaScript:while循環內的for循環
- 26. While循環內的C++ For循環
- 27. For循環內Foreach
- 28. 如何使用C++循環外的For循環中的變量?
- 29. 使用「for循環」
- 30. 使用for循環
謝謝你的現場迴應。我將在您的代碼中加入您的想法。謝謝。 – Gopinath