Плохо, не читал, что вы намеренно собирались сделать это с NSThread, вот как это сделать с NSTimer:
Если вы создаете NSTimer из основного потока, вам даже не нужно заниматься вопросами безопасности потоков.
объявляет NSTimer в файле заголовка, чтобы вы могли получить к нему доступ в случае, если хотите отменить его или что-то еще (я также предполагаю, что ваша метка называется 'mainLabel' и объявлена правильно):
NSTimer *labelVisibilityTimer;
@property (nonatomic,retain) NSTimer *labelVisibilityTimer;
в файле реализации правильно синтезируйте таймер и инициализируйте его методом, который вызовет изменение видимости.
@synthesize labelVisibilityTimer;
- (void)viewDidLoad{
self.labelVisibilityTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(toggleVisibilityOfLabel) userInfo:nil repeats:YES];
}
-(void)toggleVisibilityOfLabel{
mainLabel.hidden = !mainLabel.hidden;
}
- (void)viewDidUnload{
[super viewDidUnload];
self.labelVisibilityTimer = nil;
}
- (void) dealloc{
[super dealloc];
[labelVisibilityTimer release];
}