次のコードを実行する UIToolbarButton に関連付けられた IBAction メソッドがあります。
UIDatePicker は、ユーザーに時刻を表示するためだけに設定されています。したがって、ピッカーはランダムに日付を選択します。日付が今日の場合もあれば、明日の場合もあります。ピッカーが常に選択した時間を選択するようにします(ただし、常に将来)。たとえば、ユーザーが 1 月 1 日の午前 6:00、午後 10:00 を選択した場合、1 月 2 日の午前 6:00 を保存する日付が必要です。
次の場合はそれを行う必要がありますが、50% の確率で NSLog が一方の回答を返し、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);
}
編集:コードが変更されました。私のロジックは逆でしたが、問題は残っています。