NSDateComponents
개체를 내 UILocalNotification
개체의 userInfo
속성에 전달하고 싶습니다. 이 일을하는 가장 우아한 방법은 무엇입니까?NSDateComponents를 UILocalNotification에 전달하는 최선의 방법은 무엇입니까?
나는 EKReminders
함께 일하고 있어요 및 그들의 (유형 NSDateComponents
의 수 있습니다.) dueDateComponents
나는 또한 두 개의 문자열을 전달하고있어 통과하고, 그래서 어쩌면 난 그냥 NSDateComponent
의 description
속성을 전달할 수 있습니다 생각하고 있어요. (유효한 '속성 목록 형식이 아니기 때문에 NSDateComponent
자체를 전달할 수 없습니다.) 로컬 알림을 받으면 NSDateComponents
을 다시 String 밖으로 복원해야합니다. 다음 코드를 사용하여 그 일을하고 있습니다 만, dueDateComponents가 항상 아래와 같은 형식을 가지고 있는지 여부를 알지 못하기 때문에 (모든 로케일에 대해) 항상 작동하는지 확신 할 수 없습니다.
이것은 실제로 NSDateComponents를 전달하는 가장 안정적인 방법입니까?
let duedatestrTime = "2016-10-01 01:00:00 +0000"
// MARK: date utilities
extension String {
func toDate() -> NSDate? {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z" // IS THIS RELIABLE? DO I KNOW THAT EKReminders.dueDateComponents ALWAYS HAVE THIS FORMAT? IF NOT IT'LL RETURN NIL...
return dateFormatter.dateFromString(self)
}
}
extension NSDate {
func toNSDateComponents() -> NSDateComponents {
let unitFlags: NSCalendarUnit = [.Day, .Month, .Year, .Hour, .Minute]
return NSCalendar.currentCalendar().components(unitFlags, fromDate: self)
}
}
let x = strTime.toDate().toNSDateComponents()