У меня есть метод, который выполняет цикл в отдельном потоке. По причинам, которые работают для моей программы, я называю этот метод, используя
[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];
хотя бы пару раз.