我正在做一个应用程序,我使用NSTimer
来做一个循环。当应用程序启动时,在viewDidAppear
我检查是否设置了NSUserDefaults
中的某个值,如果不是,则显示用户UIAlertView
与UITextView
。直到这里都好。一旦用户设置用户默认值,警报视图的alertView:clickedButtonAtIndex:
调用void
,使定时器工作:NSTimer奇怪的错误(我相信)
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
[standardUserDefaults setObject:nameField.text forKey:@"host"];
[standardUserDefaults synchronize];
[self setUp];
NSLog(@"called");
}
这是[self setUp]
;
-(void)setUp {
timer = [NSTimer timerWithTimeInterval: 1 target: self selector: @selector(reloadData) userInfo: nil repeats: YES];
[[NSRunLoop mainRunLoop] addTimer: timer forMode: NSDefaultRunLoopMode];
[self reloadData];
self.host = [self getHostName:val];
self.ip = [self getHostIP:val];
NSLog(@"reached here"); //THIS GETS CALLED SO I THINK IT WORKS
}
这是[self reloadData]
:
- (void)reloadData {
NSArray *words = nil;
words = [[self getUptime] componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
//int sum = [[words objectAtIndex:0] intValue]/100.0;
float sum1 = ([[words objectAtIndex:0] floatValue]/10.0);
NSLog(@"%f", sum1);
[bar1 setProgress:sum1];
load1.text = [NSString stringWithFormat:@"%f", [bar1 progress]];
float sum2 = ([[words objectAtIndex:1] floatValue]/10.0);
NSLog(@"%f", sum2);
[bar2 setProgress:sum2];
load2.text = [NSString stringWithFormat:@"%f", [bar2 progress]];
float sum3 = ([[words objectAtIndex:2] floatValue]/10.0);
NSLog(@"%f", sum3);
[bar3 setProgress:sum3];
load3.text = [NSString stringWithFormat:@"%f", [bar3 progress]];
}
的问题是的tableView细胞没有得到的价值观和保持白色,但如果你关闭应用程序,然后重新装入(当它具有变量在用户默认情况下)的东西完美的作品,所以我不知道会发生什么。我也经常在日志中得到wait_fences: failed to receive reply: 10004003
(我知道这种情况发生在你不叫超级视图时)
也是后
setUp
void当NSTimer:scheduledTimerWith ...消息自动计划一个计时器,保存一行代码,并且保存的每一行代码都是......呃,抵消你的碳足迹......呃......无论如何。 – AndrewS