2016-10-26 10 views
0

В настоящее время мне интересно, как я могу вычесть 3, 10 и 20 минут из выбранного времени из таймера в Swift 3. Например, когда пользователь выбирает время начала события, чтобы иметь возможность получать уведомление 3, 10 или 20 минут до выбранного значения времени выбора. Я попыталсяВычесть минуты с момента выбора времени?

let value:TimeInterval = 1187.5 let periodComponents = startTimePicker.date.addingTimeInterval(-value)

для 20 минут раньше, но я получаю значение за 2 часа (может быть консоль показывает мне время GTM только). Возможно ли планировать уведомление из «periodComponens», чтобы повторять каждую неделю в указанное время в определенный день недели? Или я должен использовать другой метод вычитания?

ответ

-1

Там нет ничего плохого с кодом. Консоль xcode просто распечатывает время по умолчанию в GMT. Если вы используете NSDateFormatter конвертировать ваши NSDate в NSString и распечатать его, то результат будет, как вы ожидали

Если вы используете UILocalNotification и хотите запланировать его уволить еженедельно вы можете установить его свойство при условии repeatInterval в NSCalendarUnitWeekOfYear.

Например:

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
NSDate *fireTime; // Your desired date time. 

localNotif.fireDate = fireTime; 
localNotif.repeatInterval = NSCalendarUnitWeekOfYear; 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 
+0

Для тех, кто downvoted мой ответ: Если вы downvoted, потому что он не был в быстры, я старался изо всех сил, чтобы помочь. Просто потому, что у меня нет опыта с быстрым, не означает, что я не могу помочь другим решить их проблемы. –

0

Используйте встроенный Calendar класс:

let threeMinutesEarlier = Calendar.current.date(byAdding: .minute, value: -3, to: myPicker.date)