সুইফটুআই এবং কোর ডেটা সহ প্লেইন আমাকে কৌতূহলী সমস্যাতে নিয়ে এসেছিল। সুতরাং পরিস্থিতি নিম্নলিখিত:
আমার কাছে একটি প্রধান ভিউ "অ্যাপভিউ" এবং "সাবভিউ" নামে একটি উপদর্শন রয়েছে। আমি পপওভার বা শিট হিসাবে নেভিগেশনটিটলবারে প্লাস বোতামটি ক্লিক করলে সাবভিউ ভিউটি অ্যাপভিউ ভিউ থেকে খোলা হবে।
@Environment(\.managedObjectContext) var managedObjectContext
@State private var modal: Bool = false
...
Button(action: {
self.modal.toggle()
}) {
Image(systemName: "plus")
}.popover(isPresented: self.$modal){
SubView()
}
সাবউইউ ভিউয়ের একটি নাম এবং একটি উপকরণ যুক্ত করতে দুটি টেক্সটফিল্ড অবজেক্টের সাথে সামান্য ফর্ম রয়েছে। এই দুটি অবজেক্টের ইনপুট দুটি পৃথক @ স্টেট বৈশিষ্ট্য দ্বারা পরিচালিত হয়। এই ফর্মের তৃতীয় অবজেক্টটি সরল বোতাম, যা কোরেডাটার জন্য একটি সংযুক্ত গ্রাহক সত্তায় একটি সামনের- এবং উপাধি সংরক্ষণ করতে হবে।
...
@Environment(\.managedObjectContext) var managedObjectContext
...
Button(action: {
let customerItem = Customer(context: self.managedObjectContext)
customerItem.foreName = self.forename
customerItem.surname = self.surname
do {
try self.managedObjectContext.save()
} catch {
print(error)
}
}) {
Text("Speichern")
}
আমি যদি গ্রাহক সত্তাকে এইভাবে সংরক্ষণ করার চেষ্টা করি তবে আমি ত্রুটিটি পেয়েছি: "নীলারর", বিশেষত: "অমীমাংসিত ত্রুটি ত্রুটি ডোমেন = ফাউন্ডেশন _
তবে বের করার পরে, আমি যখন .environment(\.managedObjectContext, context)
সাবভিউ () কলটিতে যুক্ত করি তখন এটি একটি কবজির মতো SubView().environment(\.managedObjectContext, context)
কাজ করে।
কেউ কি জানেন, কেন আমাকে দ্বিতীয়বার পরিচালিতঅবজেক্ট কনটেক্সট পাস করতে হবে? আমি ভেবেছি, দৃশ্যাবলী.সুইফ্টের মতো পুরো ভিউ হায়ারার্কিতে এটি ব্যবহার করার জন্য আমাকে কেবলমাত্র পরিচালিতঅবজেক্ট কনটেক্সট পাস করতে হবে:
// Get the managed object context from the shared persistent container.
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
// Create the SwiftUI view and set the context as the value for the managedObjectContext environment keyPath.
// Add `@Environment(\.managedObjectContext)` in the views that will need the context.
let contentView = AppView().environment(\.managedObjectContext, context)
এটি কি সাবভিউ () কে এইভাবে কল করার কারণে, দর্শনটি ভিউয়ের স্তরক্রমের অংশ নয়? আমি এটা বুঝতে পারি না ...