0
我有一個方法,在一個單獨的線程上執行一個循環。對於我的程序工作,我稱使用這種方法的原因,我如何在UILabel中循環顯示字符?
[self performSelectorInBackground:@selector(myMethod:) withObject:arg];
和實際的方法,
- (void)myMethod:(NSString *)arg {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
for (int i = 0; i < [arg length]; i++) {
unichar ch = [arg characterAtIndex:i];
NSLog(@"Processing character %c",ch);
NSString *currentChar = [[NSString alloc] initWithFormat:@"%c", ch];
viewController.outputLabel.text = currentChar;
[currentChar release];
switch (ch) {
//Do my stuff
}
[pool release];
}
現在我的問題是,只有那些被處理的最後一個字符被顯示在我的UILabel,但是當我在運行程序時檢查我的控制檯時,由於正在處理字符,它們將逐個顯示到控制檯(使用NSLog)。這正是我希望在我的標籤中看到的行爲。
另外我應該告訴你,每次我在處理一個字符時(在switch語句中)至少有一點延遲,因爲我至少需要調用[NSThread sleepForTimeInterval:delayTime];
幾次。
作品完美地感謝! – cgossain 2010-11-12 20:26:41