我希望仅当当前天数等于存储在我的CoreData属性中的天数时才显示SwiftUI视图.

我首先try 了下面这句话,但似乎不太可能:

if (example.date!, format: .dateTime.day(.twoDigits)) == (Date(), format: .dateTime.day(.twoDigits)) {

然后,我试了试我在互联网上找到的下面这句话:

if Calendar.current.isDate(example.date!, equalTo: Date(), toGranularity: .day) {

但它并没有像预期的那样起作用.只有在日期都是04/02/2023的情况下,才可以这样做,但如果日期是04/02/202305/02/2023,则不行.

你们有主意吗?谢谢!

推荐答案

添加一个帮助器函数作为Date的扩展,用于判断特定日期组件的值是否相等

extension Date {
    func isValueOfComponent(_ component: Calendar.Component, equalTo date: Date) -> Bool {
        Calendar.current.component(component, from: self) == Calendar.current.component(component, from: date)
    }
}

然后比较

if example.date!.isValueOfComponent(.day, equalTo: Date())

能够考虑多个组件的更灵活的解决方案是

extension Date {
    func isDateEqual(to date: Date, matching components: Set<Calendar.Component>) -> Bool {
        Calendar.current.dateComponents(components, from: self) == Calendar.current.dateComponents(components, from: date)
    }
}

并使用它

if example.date!.isDateEqual(to: Date(), matching: [.month, .day])

Swift相关问答推荐

UITableView未显示类数组数据

使用SWIFT宏从另一个枚举添加 case

阴影动画的动画不流畅

SWIFT闭包使用的是陈旧的值,即使它是S@转义

同时具有每个文本的标识符的文本组的可扩展性标识符

在SwiftUI中使用ForEach循环来显示字典项的键和值在Form视图中

SwiftUI:列表背景为空列表时为黑色

@Binding 在@StateObject 和 View 上被发布了两次?

关于变量的视图的 SwiftUI 生命周期

如何在 Swift 中使用子定义覆盖父类扩展

如何在 SwiftUI 中获取视图的位置

自定义 DispatchQueue 服务质量

如何在 ZStack 中单独下移卡片?

SwiftUI 4 列表初始化程序在 iOS 中不可用

VStack SwiftUI 中的动态内容高度

是否可以在 Swift 中创建通用闭包?

Xcode 7.3 Swift 的语法高亮和代码完成问题

无法分配给属性:self 是不可变的,我知道如何修复但需要理解

如何从元组数组创建字典?

调整文本的字体大小以适应 UIButton