'Core Data: how to have a default value

self learning beginner here.

Although in the xcdatamodel file I have the default value for the attribute of that entity (see screenshot), when I build the preview, the Text("+") isn't there. I guess the countnum attribute in the TargetEntity is still empty. My thinking is to have the add() run if the attribute is empty. But that doesn't work either. Is there a way to automatically initialize the attribute when the app runs, instead of needing to build a button for the user to press?

Thanks a million


enter image description here


struct ListView: View {

@Environment(\.managedObjectContext) var moc
@FetchRequest(sortDescriptors: []) var targets: FetchedResults<TargetEntity>

var body: some View {

            VStack {
              if let firstItem = targets.first {
                Text("+")
                    .onTapGesture (count: 2){
                        do {
                            increment(firstItem)
                            try moc.save()
                        } catch {
                            print(error)
                            add()
                        }
                    }
               }
            }    
}

func increment(_ item: TargetEntity) {
        item.countnum += 1
        save()
}

func add() {
    let countnum = TargetEntity(context: moc)
    countnum.countnum = 0
    save()
}

func save() {
    do { try moc.save() } catch { print(error) }
}    

}



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source