Я пытаюсь скрыть текст «Скрыть меня» в представлении содержимого при наличии записи CoreData с атрибутом «Дата создания» (дата), который соответствует текущей дате.
DiaryItem.swift
public class DiaryItem:NSManagedObject,Identifiable {
@NSManaged public var createdAt:Date?
@NSManaged public var title:String?
}
extension DiaryItem {
static func getAllDiaryItems() -> NSFetchRequest<DiaryItem> {
let request:NSFetchRequest<DiaryItem> = DiaryItem.fetchRequest() as! NSFetchRequest<DiaryItem>
let sortDescriptor = NSSortDescriptor(key: "createdAt", ascending: true)
request.sortDescriptors = [sortDescriptor]
return request
}
}
Упрощенный ContentView.swift
import SwiftUI
import CoreData
struct ContentView: View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(entity: DiaryItem.entity(), sortDescriptors: [
NSSortDescriptor(keyPath: \DiaryItem.createdAt, ascending: false),
]) var diaryItems : FetchedResults<DiaryItem>
@State var show = false
@State private var showEntry: Bool = false
var body: some View {
VStack {
Text("Hide me!")
List{
ForEach(self.diaryItems) { diaryItem in
DiaryItemView(
title: diaryItem.title!,
createdAt: "\(diaryItem.createdAt!)",
diaryItem: diaryItem
)
}
}
}
}
}
Я знаю, что могу сравнить две даты как показано ниже:
var first = Date()
let isToday = Calendar.current.isDateInToday(first)
Как проверить, создал ли пользователь запись CoreData с датой CreatedAt, совпадающей с текущим днем, и скрыть текст «Скрыть меня», если это так?
Спасибо за чтение, любая помощь будет потрясающей!