Я трачу часы, чтобы выяснить, как однозначно извлечь значения из свойства модели данных (CoreData).
Например, если у меня есть 3 записи, в которых есть "Apple", "Banana" и «Apple» соответственно в свойстве wrappedName, ListView показывает «Apple», «Banana» и «Apple» (3 строки).
Но я хочу показать только «Apple» и «Banana» (2 ряды).
Как мне этого добиться?
//ListView.swift
import SwiftUI
import CoreData
struct ListView: View {
@FetchRequest(entity: Data.entity(), sortDescriptors: []) var data: FetchedResults<Data>
var body: some View {
NavigationView{
List{
ForEach(data, id: \.self) { d in
NavigationLink(destination: ChartView(title: d.wrappedName) {
Text(d.wrappedName)
}
}
}
}
}
}
//Data+CoreDataProperties.swift
import Foundation
import CoreData
extension Data {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Data> {
return NSFetchRequest<Data>(entityName: "Data")
}
@NSManaged public var date: Date?
@NSManaged public var id: UUID?
@NSManaged public var name: String?
public var wrappedName: String {
name ?? "Unknown"
}
}