Ios 理解';包装组件&x27;in-date(通过将:添加到:wrappingComponents:)方法

Ios 理解';包装组件&x27;in-date(通过将:添加到:wrappingComponents:)方法,ios,swift,Ios,Swift,据Apple Doc称,“wrappingComponents”参数用于此目的: 如果为true,则组件应递增并环绕到 溢出时为0/1,不应导致更高的组件 增加。默认值为false 我很难理解的是“溢出”部分。什么是溢出?何时发生溢出?Apple Doc目前没有在其文档中解释此部分 提前感谢您的回答。“溢出”表示添加日期组件的结果超出该组件的允许范围。例如,将5天添加到6月30日是“溢出”,因为6月35日不存在。其他例子包括18:00加7小时,12月加4个月,等等。这也适用于减法 默认情况下(w

据Apple Doc称,“wrappingComponents”参数用于此目的:

如果为true,则组件应递增并环绕到 溢出时为0/1,不应导致更高的组件 增加。默认值为false

我很难理解的是“溢出”部分。什么是溢出?何时发生溢出?Apple Doc目前没有在其文档中解释此部分

提前感谢您的回答。

“溢出”表示添加日期组件的结果超出该组件的允许范围。例如,将5天添加到6月30日是“溢出”,因为6月35日不存在。其他例子包括18:00加7小时,12月加4个月,等等。这也适用于减法

默认情况下(wrapping components=false),较大的组件将递增:如果您在6月30日之前添加5天,则将得到7月5日:

但是,如果您将其设置为true,它将环绕,这意味着较大的组件不会改变-您将得到6月5日

今天对我来说是六月八日。使用包装组件添加29天将使6月7日:

let newDate = Calendar.current.date(byAdding: DateComponents(day: 29), to: Date(), wrappingComponents: true)
print(newDate)

谢谢你这么详细的回答!!!你太棒了。