2
我有一個IBAction爲方法綁到運行下面的代碼UIToolbarButton。的UIDatePicker和日期不存儲正確
的是的UIDatePicker僅設置顯示的時間給用戶。 因此,選取器隨機選擇日期:有時日期是今天,有時日期是明天。我希望選擇者總是選擇所選的時間(但總是在將來)。例如如果用戶在1月1日晚上10:00點選擇上午6點,我希望日期在1月2日上午6點存儲。
下,如果要做到這一點,但是時間的NSLog的50%返回一個答案,它返回其他50%的時間。
if (self.picker.date >= [NSDate dateWithTimeIntervalSinceNow:0]) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDate *pickerdate = self.picker.date;
[defaults setObject:pickerdate forKey:@"pickerdate"];
[defaults synchronize];
NSLog(@"The date is more than now. Pickerdate is %@",pickerdate);
}
else {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents* components = [[NSDateComponents alloc] init];
components.day = 1;
NSDate * pickerdate = [calendar dateByAddingComponents: components toDate: self.picker.date options: 0];
[defaults setObject:pickerdate forKey:@"pickerdate"];
[defaults synchronize];
NSLog(@"The date is less than now. Pickerdate is %@",pickerdate);
}
編輯:修改代碼,我的邏輯倒退了,但問題依然存在。
不能使用'> ='(或類似)運算符來比較兩個'NSDate'對象。這些是物體。您必須使用'compare:'方法來比較兩個日期。就像你一樣,你正在比較一下,看看一個對象指針是否大於或等於另一個對象指針。絕對不是你想要的。 – rmaddy 2013-04-18 03:27:14
啊,這是有道理的。我忘了比較NSDate對象。我怎麼能找到一個比另一個大的呢? – Macness 2013-04-18 03:38:34
查看isLaterThanOrEqualTo和isEarlierThanOrEqualTo的類參考。 – Macness 2013-04-18 03:41:50