0

我想通過一個NSDateComponents對象到我的UILocalNotification對象的userInfo屬性。做這件事最優雅的方式是什麼?將NSDateComponents傳遞給UILocalNotification的最佳做法?

我與EKReminders工作,我通過他們dueDateComponents(這是NSDateComponents類型。)我也傳遞了兩個字符串,所以我想,也許我就通過NSDateComponentdescription財產。 (我無法通過NSDateComponent本身,因爲它不是一個有效的'屬性列表類型')當我收到本地通知時,我需要再次將一個NSDateComponents退出字符串。我正在用下面的代碼做這件事,但我不確定它會一直工作(對於每個地區?),因爲我不知道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來傳遞它,然後在出路的情況下將它轉換回組件,如果這就是你需要的呢?

相關問題