Skip to content

Commit 5a1603c

Browse files
committed
DateComponents : Codable using encodeIfPresent
1 parent 3583699 commit 5a1603c

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

Foundation/DateComponents.swift

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -400,24 +400,23 @@ extension DateComponents : Codable {
400400
}
401401

402402
public func encode(to encoder: Encoder) throws {
403-
// TODO: Replace all with encodeIfPresent, when added.
404403
var container = encoder.container(keyedBy: CodingKeys.self)
405-
if self.calendar != nil { try container.encode(self.calendar!, forKey: .calendar) }
406-
if self.timeZone != nil { try container.encode(self.timeZone!, forKey: .timeZone) }
407-
if self.era != nil { try container.encode(self.era!, forKey: .era) }
408-
if self.year != nil { try container.encode(self.year!, forKey: .year) }
409-
if self.month != nil { try container.encode(self.month!, forKey: .month) }
410-
if self.day != nil { try container.encode(self.day!, forKey: .day) }
411-
if self.hour != nil { try container.encode(self.hour!, forKey: .hour) }
412-
if self.minute != nil { try container.encode(self.minute!, forKey: .minute) }
413-
if self.second != nil { try container.encode(self.second!, forKey: .second) }
414-
if self.nanosecond != nil { try container.encode(self.nanosecond!, forKey: .nanosecond) }
404+
try container.encodeIfPresent(self.calendar, forKey: .calendar)
405+
try container.encodeIfPresent(self.timeZone, forKey: .timeZone)
406+
try container.encodeIfPresent(self.era, forKey: .era)
407+
try container.encodeIfPresent(self.year, forKey: .year)
408+
try container.encodeIfPresent(self.month, forKey: .month)
409+
try container.encodeIfPresent(self.day, forKey: .day)
410+
try container.encodeIfPresent(self.hour, forKey: .hour)
411+
try container.encodeIfPresent(self.minute, forKey: .minute)
412+
try container.encodeIfPresent(self.second, forKey: .second)
413+
try container.encodeIfPresent(self.nanosecond, forKey: .nanosecond)
415414

416-
if self.weekday != nil { try container.encode(self.weekday!, forKey: .weekday) }
417-
if self.weekdayOrdinal != nil { try container.encode(self.weekdayOrdinal!, forKey: .weekdayOrdinal) }
418-
if self.quarter != nil { try container.encode(self.quarter!, forKey: .quarter) }
419-
if self.weekOfMonth != nil { try container.encode(self.weekOfMonth!, forKey: .weekOfMonth) }
420-
if self.weekOfYear != nil { try container.encode(self.weekOfYear!, forKey: .weekOfYear) }
421-
if self.yearForWeekOfYear != nil { try container.encode(self.yearForWeekOfYear!, forKey: .yearForWeekOfYear) }
415+
try container.encodeIfPresent(self.weekday, forKey: .weekday)
416+
try container.encodeIfPresent(self.weekdayOrdinal, forKey: .weekdayOrdinal)
417+
try container.encodeIfPresent(self.quarter, forKey: .quarter)
418+
try container.encodeIfPresent(self.weekOfMonth, forKey: .weekOfMonth)
419+
try container.encodeIfPresent(self.weekOfYear, forKey: .weekOfYear)
420+
try container.encodeIfPresent(self.yearForWeekOfYear, forKey: .yearForWeekOfYear)
422421
}
423422
}

0 commit comments

Comments
 (0)