Что я хочу сделать: передать ссылку на NSManagedObject объекта FetchRequest (здесь: из TestView) в другое дочернее представление (здесь: LogRectangle).
То, что я пробовал: Это в основном важные строки :
List(testObjects, id: \.self) { habit in
LogRectangle(testObject: testObject)
}
И это весь код:
struct TestView : View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(
entity: TestObject.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \TestObject.name, ascending: true)]
) var testObjects: FetchedResults<TestObject>
var body: some View {
NavigationView {
HStack {
Button(action: {
let testObject = TestObject(context: self.managedObjectContext)
habit.name = "TestObject String"
do {
try self.managedObjectContext.save()
} catch {
// handle the Core Data error
}
}) {
Text("Insert example TestObject")
}
List(testObjects, id: \.self) { habit in
LogRectangle(testObject: testObject)
}
}
.navigationBarTitle("Test")
}
}
}
struct LogRectangle : View {
var habit : TestObject
var body: some View {
Text(habit.name)
.font(.title)
.foregroundColor(.white)
}
}
Здесь я получаю эту ошибкуна строке с текстом в классе LogRectangle.
Cannot convert value of type 'String?' to expected argument type 'LocalizedStringKey'