Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中为NSDATEComponnensFormatter设置多个允许的单位 背景:_Ios_Swift_Nsdatecomponentsformatter - Fatal编程技术网

Ios 在Swift中为NSDATEComponnensFormatter设置多个允许的单位 背景:

Ios 在Swift中为NSDATEComponnensFormatter设置多个允许的单位 背景:,ios,swift,nsdatecomponentsformatter,Ios,Swift,Nsdatecomponentsformatter,使用NSDateComponents格式设置NSTimeInterval格式时,使用allowedUnits属性将结果字符串四舍五入到相关的时间单位通常很方便 例如,我可能对获取秒的时间不感兴趣,因此将allowedUnits设置为分钟会得到一个适当的四舍五入输出字符串: let duration: NSTimeInterval = 3665.0 // 1 hour, 1 minute and 5 seconds let durationFormatter = NSDateComponen

使用NSDateComponents格式设置NSTimeInterval格式时,使用
allowedUnits
属性将结果字符串四舍五入到相关的时间单位通常很方便

例如,我可能对获取秒的时间不感兴趣,因此将
allowedUnits
设置为分钟会得到一个适当的四舍五入输出字符串:

let duration: NSTimeInterval = 3665.0    // 1 hour, 1 minute and 5 seconds
let durationFormatter = NSDateComponentsFormatter()

durationFormatter.unitsStyle = .Full
durationFormatter.zeroFormattingBehavior = .DropAll
durationFormatter.allowedUnits = .Minute

let formattedDuration = durationFormatter.stringFromTimeInterval(duration)
formattedDuration
将为“61分钟”

问题是: 如何将
允许的单位设置为
小时
分钟
,使格式化的持续时间改为“1小时1分钟”


这本书并没有真正介绍如何做到这一点。

我提出的解决方案是通过将所需允许单位的原始值相加来创建一个
NSCalendarUnit

durationFormatter.allowedUnits = NSCalendarUnit(rawValue: NSCalendarUnit.Hour.rawValue + NSCalendarUnit.Minute.rawValue)

我不想知道是否有更好的语法或替代方法来实现这一点。

我提出的解决方案是通过将所需允许单位的原始值相加来创建
NSCalendarUnit

durationFormatter.allowedUnits = NSCalendarUnit(rawValue: NSCalendarUnit.Hour.rawValue + NSCalendarUnit.Minute.rawValue)

我不想知道是否有更好的语法或替代方法来实现这一点。

正如Leo所建议的,您可以简单地在如下数组中提供
allowedUnits

durationFormatter.allowedUnits = [.Hour, .Minute]

正如Leo所建议的,您可以简单地在如下数组中提供
allowedUnits

durationFormatter.allowedUnits = [.Hour, .Minute]

durationFormatter.allowedUnits=[.Hour,.Minute]durationFormatter.allowedUnits=[.Hour,.Minute]durationFormatter.allowedUnits=[.Hour,.Minute]durationFormatter.maximumUnitCount=2请注意,您的第一个建议非常有效。我不知道你可以只提供这样一个数组中的单位。你可以添加所有单位并将单位计数限制为2。你将在Swift 2.0durationFormatter中大量使用这种语法。allowedUnits=[.Hour,.Minute]durationFormatter.maximumUnitCount=2 heers Leo,你的第一个建议非常有效。我没有意识到你可以在这样的数组中提供单位。你可以添加所有单位,并将单位数限制为2。你将在Swift 2.0中大量使用这种语法