首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI比较时间代码在iPhone 8 mini和iPhone 12 mini IOS 16上崩溃

SwiftUI比较时间代码在iPhone 8 mini和iPhone 12 mini IOS 16上崩溃
EN

Stack Overflow用户
提问于 2022-10-04 17:33:22
回答 1查看 63关注 0票数 0

请帮助它已经让我疯狂我使用Xcode 14,两个崩溃的设备使用IOS 16。我有下面的代码,它不工作在iPhone 8迷你,iPhone 12迷你真实设备。它确实工作在iPhone 12 Mini和iPhone 8迷你模拟器和其他真正更大的iPhone设备上。我下载的时间字符串如"19:00“如果当前时间少于此,按钮激活否则禁用按钮。

代码语言:javascript
复制
        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确实显示了值。

///

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-04 19:14:35

请编辑您的问题,将您的代码作为代码,而不是屏幕截图.如果你也想离开屏幕截图,这样我们可以看到崩溃的信息,好吧,但我们需要代码。

你的代码正在使用强制展开。

我把这个解包操作符叫做“崩溃如果没有”操作符。它就是这么做的。

别用武力拆开。如果日期字符串无法转换为Date,则重写代码以记录消息

您可能会将不同的设备设置为不同的区域设置,在这些区域设置日期/时间格式的规则不同。

尝试使用每个设备上的日期格式化程序将当前Date()显示为字符串,并将其记录到控制台。我的猜测是,你的一些设备被设置为12小时时间,有些设置为24小时时间。

在12小时内,日期字符串"18:20“无效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73951610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档