我正在做一個應用程序,我使用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