ios – Swift Knowledge don’t save Mannequin

0
1
ios – Swift Knowledge don’t save Mannequin


i’ve created a small Utility that may learn in a Gross sales Examine Image from a Vendor. On this case Rewe. Loading the Knowledge and creating within the SalesCheckView is not any Drawback and the attempt catch block don’t throws an error. However once I go into the SalesCheckListView I do get an empty Swift Knowledge question for my SalesCheck. I’ve different Querys in different Views that do work however this are not looking for what I would like. Perhaps somebody sees my mistake. Thanks in andvance.

My App appears to be like like this:

Foremost

import SwiftUI
import SwiftData

@fundamental
struct TestAppApp: App {
    
    var physique: some Scene {
        WindowGroup {
            ContentView()
        }.modelContainer(for: [ReceiptModel.self, FoodModel.self, ReceiptFoodQuantity.self, SalesCheck.self])
    }
}

Content material:

import SwiftUI

struct ContentView: View {
    var physique: some View {
        MainHub()
    }
}

#Preview {
    ContentView()
}

Hub

import SwiftUI

struct MainHub: View {
    var physique: some View {
        NavigationStack{
            NavigationLink("Recepits") {
                ReceiptAddView()
            }
            NavigationLink("Meals") {
                FoodAddView()
            }
            NavigationLink("Add Gross sales Examine") {
                SalesCheckView()
            }
            NavigationLink("Gross sales Examine") {
                SalesCheckListView()
            }
        }
    }
}

#Preview {
    MainHub()
}

SalesCheckView

import SwiftUI
import Imaginative and prescient



@Observable
class ItemPricingModel: Identifiable{
    var id : UUID
    var identify: String
    var value: String
    
    init(identify: String, value: String) {
        self.id = UUID()
        self.identify = identify
        self.value = value
    }
}

struct SalesCheckView: View {
    @Surroundings(.dismiss) non-public var dismiss
    @Surroundings(.modelContext) var context
    @State non-public var regonizedText = ""
    @State non-public var itemPricingModelList: [ItemPricingModel] = []
    var physique: some View {
        VStack {
            Picture(.test2)
                .resizable()
                .aspectRatio(contentMode: .match)
            
            Button("acknowledge"){
                print("pressed")
                loadPhoto()
            }
            Spacer()
            ShoppedListView(itemPricingModelList: $itemPricingModelList)
            Button("Save Gross sales Examine"){
                let salesCheck = SalesCheck(namePricingModel: itemPricingModelList,vendorName: "Rewe")
                print(salesCheck)
                context.insert(salesCheck)
                do {
                    attempt context.save()
                    dismiss()
                }
                catch { print ("Error saving context: (error)")
                }
            }
        }
        .padding()
        
        
    }
    
    non-public func loadPhoto() {
        recognizeText()
        
    }
    
    non-public func recognizeText() {
        let picture = UIImage(useful resource: .test2)
        guard let cgImage = picture.cgImage else { return }
        
        let handler = VNImageRequestHandler(cgImage: cgImage)
        
        let request = VNRecognizeTextRequest { request, error in
            guard error == nil else {
                print(error?.localizedDescription ?? "")
                return
            }
            
            guard let end result = request.outcomes as? [VNRecognizedTextObservation] else { return }
            
            let recogArr = end result.compactMap {end in end result.topCandidates(1).first?.string
            }
            
            DispatchQueue.fundamental.async {
                self.itemPricingModelList = ReweSalesCheckAnalyzer(scannedSalesCheck: recogArr).analyze()
            }
        }
        
        request.recognitionLevel = .correct
        do {
            attempt handler.carry out([request])
        } catch {
            print(error.localizedDescription)
        }
    }
}



#Preview {
    SalesCheckView()
}

SalesCheckModel

import Basis
import SwiftData



@Mannequin
class SalesCheck{
    @Attribute(.distinctive) var id: UUID
    var nameString: String
    var value: String
    var venodrName: String
    
    init(namePricingModel: [ItemPricingModel], vendorName: String) {
        var nameString: String = ""
        var priceString: String = ""
        
        self.id = UUID()
        
        for (i,merchandise) in namePricingModel.enumerated(){
            if i==1{
                nameString += merchandise.identify
                priceString += merchandise.value
            }else{
                nameString += ", " + merchandise.identify
                priceString += ", " + merchandise.value
            }
        }
        
        
        self.nameString = nameString
        self.value = priceString
        self.venodrName = vendorName
    }
}

SalesCheckListView

import SwiftUI
import SwiftData

struct SalesCheckListView: View {
    @Question var salesCheckListQuery: [SalesCheck]
    var physique: some View {
        Button("teste"){
            print(salesCheckListQuery)
        }

        ForEach(salesCheckListQuery) { salesCheck in
            Textual content("Vendor  (salesCheck.nameString)")
        }
    }
}

LEAVE A REPLY

Please enter your comment!
Please enter your name here