关于Measurement与UnitDuration类源码:一分钟等于60秒的定义位置查询
关于UnitDuration中分钟与秒换算定义的解答
嘿,这个问题问得很实在!你找到的UnitDuration公开接口确实只展示了hours、minutes、seconds这些只读类属性,但1分钟=60秒的具体换算定义其实是封装在Apple系统框架的私有实现里的,不会出现在公开的头文件或开源代码中。
为什么看不到这个定义?
Apple的Foundation框架(这类基础单位类属于Foundation)会把标准国际单位制的固定换算逻辑作为内部实现,因为这些是通用且不需要开发者修改的规则,所以只对外暴露可直接使用的单位属性,而把换算的核心逻辑藏在底层。
怎么验证这个换算关系?
如果你想确认这个换算规则的存在,可以在代码里做个简单测试:
import Foundation let oneMinute = Measurement(value: 1, unit: UnitDuration.minutes) let convertedToSeconds = oneMinute.converted(to: .seconds) print(convertedToSeconds.value) // 控制台会输出 60.0
补充:自定义单位换算的方式
如果需要自定义非标准的时间单位换算,你可以自己子类化Dimension,通过重写baseUnit和converter属性来定义换算规则,但系统自带的UnitDuration单位的换算逻辑是无法直接查看源码的。
内容的提问来源于stack exchange,提问作者Vince O'Sullivan
相关产品推荐
相关产品推荐

