Вроде новичок в программировании iPhone и экспериментировал с потоками
- (void)viewDidLoad {
[super viewDidLoad];
[NSThread detachNewThreadSelector:@selector(changeMain) toTarget:self withObject:nil];
[NSThread detachNewThreadSelector:@selector(changeThread) toTarget:self withObject:nil];
}
- (void)changeMain{
NSAutoreleasePool* arp = [[NSAutoreleasePool alloc] init];
for (int i = 0; i < 1000000; i++) {
[mainValue setText:[NSString stringWithFormat:@"%d",i]];
[self.view setNeedsDisplay];
}
[arp release];
}
- (void)changeThread{
NSAutoreleasePool* arp = [[NSAutoreleasePool alloc] init];
for (int i = 0; i < 1000000; i++) {
[threadValue setText:[NSString stringWithFormat:@"%d",i]];
[self.view setNeedsDisplay];
}
[arp release];
}
mainValue и threadValue - это всего лишь UILabels. Я ожидал, что он запустится и увидит, что обе метки работают до 999999, но вместо этого он начинается с некоторого небольшого числа (которое, как я полагаю, происходит при первоначальном обновлении экрана), немного останавливается, затем обновляется до 999999. Я думаю, экран просто не освежает.
Это правильно? Я делаю это неправильно?