【发布时间】:2018-01-25 13:43:11
【问题描述】:
我目前正在创建一个锻炼计时器应用程序。 我想存储 just 创建的计时器对象的小时:分钟:秒。
我首先创建了一个 Time 对象:
class Time: Object {
@objc dynamic var hour: Int = 0
@objc dynamic var minute: Int = 0
@objc dynamic var second: Int = 0
}
我用这个对象来表示时间间隔。我不喜欢这种方法的地方是我得到了一个单独的时间表,其中包含小时、分钟和秒列。
然后我想看看我是否可以存储一个元组 (Int, Int, Int) 来表示我的时间间隔。但是我收到一个警告,元组类型不能在 object-c 中表示。我还认为 Realm 可能不知道如何处理元组。
所以我的问题是。存储用户选择的小时、分钟和秒时间间隔的最佳方法是什么,而不必存储附加了无用日期的整个日期对象。
当然,我还需要能够从后备存储读取该时间间隔,以便将其应用于计时器。
编辑: 我想我也可以将其存储为秒的整数值,然后将结果解析为小时、分钟和秒
【问题讨论】:
-
什么不是
Date?它足够轻巧,因为它基本上只是一个时间戳。或者,您也可以只存储一个TimeInterval,它是Double的花哨类型别名? -
绝对将其存储为单个无符号 Int,以秒为单位。这样,您永远不会遇到不一致的地方,例如小时是 25,分钟是 -1。
-
@YoamFarges 如果有的话,为了清楚起见。我认为 Date 对象是存储日期的东西,而不一定是时间间隔。
-
@Gereon 是的,对 Uint 的呼吁很好。我认为这将是最好的方法。
-
由于这个原因,
TimeInterval是Double的内置别名。为什么你不能使用它?