Swift アプリバージョンアップでJSON変更(要素追加)対応
現在
class MonthlyCalendarSettingData: Codable { var disp: Bool = false var x: Float = 0.0 var y: Float = 0.0 var monthDayColor: ColorRGBA = ColorRGBA() var paintColor: ColorRGBA = ColorRGBA() var lineColor: ColorRGBA = ColorRGBA() var dayofWeekColor: ColorRGBA = ColorRGBA() }
バージョンアップ
追加要素はオプショナルにしておけば、デコード時に要素がなくても大丈夫。
nilが入る。
追加要素を触るとき気をつけないといけないが、
デコード後にnil時は初期値設定するupdaterを作っておけば良い。
class MonthlyCalendarSettingData: Codable { var disp: Bool = false var x: Float = 0.0 var y: Float = 0.0 var monthDayColor: ColorRGBA = ColorRGBA() var paintColor: ColorRGBA = ColorRGBA() var lineColor: ColorRGBA = ColorRGBA() var dayofWeekColor: ColorRGBA = ColorRGBA() // add Ver 1.1 var nextMonth: Bool? = nil }
updater example
func updateVersion(_ refillSettingData: RefillSettingData) { // add Ver 1.1 if refillSettingData.monthCalendar.nextMonth == nil { print("update Ver 1.1") refillSettingData.monthCalendar.nextMonth = false } }