0

NSDateComponents 개체를 내 UILocalNotification 개체의 userInfo 속성에 전달하고 싶습니다. 이 일을하는 가장 우아한 방법은 무엇입니까?NSDateComponents를 UILocalNotification에 전달하는 최선의 방법은 무엇입니까?

나는 EKReminders 함께 일하고 있어요 및 그들의 (유형 NSDateComponents의 수 있습니다.) dueDateComponents 나는 또한 두 개의 문자열을 전달하고있어 통과하고, 그래서 어쩌면 난 그냥 NSDateComponentdescription 속성을 전달할 수 있습니다 생각하고 있어요. (유효한 '속성 목록 형식이 아니기 때문에 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() 

답변

1

NSDate는 사용할 수있는 유효한 유형입니다. 구성 요소를 NSDate로 변환하여 전달한 다음 필요한 경우 다시 구성 요소로 변환해야하는 이유는 무엇입니까?