请帮助它已经让我疯狂我使用Xcode 14,两个崩溃的设备使用IOS 16。我有下面的代码,它不工作在iPhone 8迷你,iPhone 12迷你真实设备。它确实工作在iPhone 12 Mini和iPhone 8迷你模拟器和其他真正更大的iPhone设备上。我下载的时间字符串如"19:00“如果当前时间少于此,按钮激活否则禁用按钮。
let date = Date()
let calender = Calendar.current
let hour = calender.component(.hour, from: date)
let minute = calender.component(.minute, from: date)
let slotTime = splitTime(string: time.Time)
let CurrentTimeString = "\(hour):\(minute)"
let TimeSlotTimeString = slotTime
let f = DateFormatter()
f.dateFormat = "HH:mm"
if f.date(from: CurrentTimeString)! > f.date(from: slotTime)! {
return true
} else {
return false
}
}崩溃消息在展开时发现为零。

/我在错误区域上使用我的鼠标,Xcode确实显示了值。

///

发布于 2022-10-04 19:14:35
请编辑您的问题,将您的代码作为代码,而不是屏幕截图.如果你也想离开屏幕截图,这样我们可以看到崩溃的信息,好吧,但我们需要代码。
你的代码正在使用强制展开。
我把这个解包操作符叫做“崩溃如果没有”操作符。它就是这么做的。
别用武力拆开。如果日期字符串无法转换为Date,则重写代码以记录消息
您可能会将不同的设备设置为不同的区域设置,在这些区域设置日期/时间格式的规则不同。
尝试使用每个设备上的日期格式化程序将当前Date()显示为字符串,并将其记录到控制台。我的猜测是,你的一些设备被设置为12小时时间,有些设置为24小时时间。
在12小时内,日期字符串"18:20“无效。
https://stackoverflow.com/questions/73951610
复制相似问题