1
之間的1分鐘我有一個UIProgressView,顯示兩個NSDate之間的時間。一切工作正常,每分鐘通過UIProgressView前進0.1分鐘。在我的應用程序中減去兩個NSDate
兩個日期之間的差額,在這樣一個CGFloat的
除此之外計算我有一個UIButton它應有的每個按鈕被按下時「降低ProgressView 0.1」中的幾句話功能我想花一分鐘來解釋我之前創建的兩個NSDate之間的區別。我做了一些嘗試,但我無法得到這個,因爲當我的應用程序關閉,然後重新打開兩個日期之間的時間差不會改變...我怎麼能做到這一點?
我告訴你我使用
-(void)viewDidLoad {
[super viewDidLoad];
[self startDate];
}
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self upgradeEnergyBar];
[NSTimer scheduledTimerWithTimeInterval: (1 * 60)
target:self
selector:@selector(upgradeEnergyBar)
userInfo:nil
repeats:YES];
}
-(void)startDate {
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
if (! [defaults boolForKey:@"notFirstRun"]) {
NSDate *date = [NSDate new];
[[NSUserDefaults standardUserDefaults] setObject:date forKey:@"open"];
NSLog(@"Ora di apertura : %@", date);
[defaults setBool:YES forKey:@"notFirstRun"];
}
}
- (IBAction)sfAction:(id)sender {
//Decrement CGFLOAT
}
-(void)upgradeEnergyBar {
self.now = [NSDate new];
NSDate *lastDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"open"];
NSTimeInterval timeInterval = [self.now timeIntervalSinceDate:lastDate];
_minutes = timeInterval/60;
_energyBar.progress = _minutes * 0.1;
[self updateLabelEnergyWithProgress:_energyBar.progress];
_minute.text = [NSString stringWithFormat:@"MINUTES:%ld", (long) _minutes];
NSLog(@"MINUTES:%ld", (long) _minutes);
if (_energyBar.progress == 1) NSLog(@"end");
}
完美的作品...現在我cpaito我的錯誤...問題是我不再保存我的皮膚新的NSUserDefault ..我想問一個問題...代碼工作正常,當我打開和關閉我的現在的應用程序分鐘更改...但爲什麼從XCode啓動我的應用程序不能通過ipad關閉分鐘不會更改? – kAiN
你..爲負值我用這種方式修正if(bar.progress == 0)return; 你能告訴我是否和避免負值的方法? – kAiN
我編輯了我的答案,以顯示避免負面/未來時間問題的一種方法。我真的不知道你的其他問題是什麼... – DonMag