gpt4 book ai didi

swift - 将 iOS 分段控件转换为 CFTimeInterval 类型

转载 作者:行者123 更新时间:2023-11-30 12:19:26 24 4
gpt4 key购买 nike

使用 Swift 3,我在这个语句中有一个硬编码值:

var lastDisplayLinkTimeStamp: CFTimeInterval!

if self.lastDisplayLinkTimeStamp >= 30
{
totalTimes += 1
}

但现在我设置了一个分段控件,让用户选择 30.0、45.0 或 60.0 作为值,而不是硬编码值。

我知道我可以使用以下方法获取所选片段的标题文本:

durationSegment.titleForSegment(at: durationSegment.selectedSegmentIndex

我认为它会产生一个字符串? (可选字符串)

但是如何将文本的durationSegment.titleForSegment转换为if语句中接受的CFTimeInterval,或者我认为Double也被接受?

我尝试了使用 CFTimeInterval 或 Double 或 Float 转换的几种变体

 if self.lastDisplayLinkTimeStamp >= Double(durationSegment.titleForSegment(at: durationSegment.selectedSegmentIndex)
{
totalTimes += 1
}

但仍然收到如下错误:

Binary operator '>=' cannot be applied to operands of type 'CFTimeInterval!' and 'Double?'

最佳答案

不要使用片段的标题。标题仅供显示之用,不应代表您的数据。

一个解决方案是创建一个时间间隔数组:

let possibleTimeIntervals: [CFTimeInterval] = [ 30.0, 45.0, 60.0 ]

然后根据所选段获取值:

let selectedSegment = durationSegment.selectedSegmentIndex
if selectedSegment != UISegmentedControlNoSegment {
let timeInterval = possibleTimeIntervals[selectedSegment]
if self.lastDisplayLinkTimeStamp >= timeInterval {
totalTimes += 1
}
}

顺便说一句 - 您甚至可以使用 possibleTimeIntervals 数组通过数字格式化程序创建片段标题。

关于swift - 将 iOS 分段控件转换为 CFTimeInterval 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44981890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com