2013-06-27 96 views
0

我有一個標籤,我想每天自動更新?在某些特定的時間。代碼如何?我已經搜索了每天如何更新標籤的地方。每天用新文本更新標籤

NSdate和NStimer標籤工作。如果用戶想查看轉發事件,還可以使用日期選擇器。

我認爲這是有東西,「如果」的日期是..}其他{...和類似的東西

感謝

編輯:

如果我已經有了這些代碼在我的應用程序然後會出現錯誤

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 


NSDate *nowDate = [NSDate date]; 

self.currentDateLabel.text = [dateFormatter stringFromDate:nowDate]; 
+0

嘿,你shouldnot張貼重複的問題。你昨天發佈了同樣的問題沒有?最佳做法是將相同的問題編輯爲合適的表單。 – prince

+0

我已經編輯它,但它處於暫停狀態,所以沒有人看到它。對不起 – user2310932

回答

0

嘗試此代碼的日期之間的任何比較...你不應該比較日期的形式的字符串。比較轉換前的日期到字符串。通過指定dateString的確切日期格式,使用格式化程序的dateFromString函數將self.serverDate轉換爲日期格式。然後使用以下函數比較日期。

-(void) callAfterSixtySecond:(NSTimer*) t 
{ 

NSDate *today = [NSDate date]; // current date 
NSDate *newDate = self.serverDate; // other date 

NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; 
[formatter setDateFormat:@"HH:mm"]; 
NSDate *todayTime = [formatter dateFromString:[formatter stringFromDate:today]]; 
NSDate *requiredTime = [formatter dateFromString:[formatter stringFromDate:newDate]]; 

NSComparisonResult result; 

result = [todayTime compare:requiredTime ]; // comparing two dates 

if(result == NSOrderedAscending) 
    NSLog(@"today is less"); 
else if(result == NSOrderedDescending) 
    NSLog(@"newDate is less"); 
else if(result == NSOrderedSame) 
    NSLog(@"Both dates are same"); // time has reached. Update Label using setText method of label 
else 
    NSLog(@"Date cannot be compared"); 
} 

您將需要運行這個方法使用一個NSTimer每分鐘......

NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 60.0 target: self 
            selector: @selector(callAfterSixtySecond:) userInfo: nil repeats: YES]; 
+0

這將工作在一年(每天新標籤的文本? – user2310932

+0

是的,它會......嘗試改變你的設備的時間和檢查。還要確保你想要比較的固定日期是在格式「HH:mm」即24小時格式,否則你將需要匹配相應的格式。 – prince

+0

它將如何與我的代碼一起工作?tjek above .. – user2310932