【问题标题】:Core Data observed object in SwiftUISwiftUI 中的 Core Data 观察对象
【发布时间】:2021-05-23 11:35:52
【问题描述】:

我创建了一个保存在核心数据中的客户端列表。我通过 AddView 添加了一些属性,现在我尝试使用不同的视图添加新属性。为了做到这一点,我知道我需要使用observedObject 属性包装器,这样它就不会创建新客户端而是更新现有客户端。这是代码:

import SwiftUI
import CoreData

struct TopicView: View {


@Environment(\.managedObjectContext) var managedObjectContext
let myStudent: StudentData
@ObservedObject var topic: StudentData
@State var content = ""
@State private var show = false
var body: some View {
Section (header: Text("Topics covered")
                        .bold()
                        .padding(.all)
                        .font(.title3)) {
                       TextField("Add content", text: $topic.content ?? "") //error here
                        //Text(topic.content ?? "")
                .padding()}
                        Button ("Save")
            { let newStudent = StudentData(context: self.managedObjectContext)
                            newStudent.content = self.topic.content
                try? self.managedObjectContext.save()
                            self.topic.content = ""
                        }.foregroundColor(.blue)
                        .cornerRadius(10)
                        .frame(width: 200, height: 50, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
                        .font(.headline)
              Spacer()
                            }
        
    
}

我收到两个错误说: 无法将“Binding”类型的值转换为预期的参数类型“Binding” 和 无法将“String”类型的值转换为预期的参数类型“Binding

这可能是一个简单的解决方法,但由于我仍在学习,我无法理解它。 谢谢

【问题讨论】:

  • 而不是?? ““ 采用 ?? .constant(“”)
  • 它说'??不是前缀一元运算符
  • 这能回答你的问题吗? SwiftUI Optional TextField
  • 如果您在 SO 中查找确切的错误代码,则有很多解决方案

标签: core-data swiftui observedobject


【解决方案1】:

谢谢大家, 这是我发现的并且似乎有效:

TextField("Add content", text: Binding(
                                get: { self.topic.content ?? ""},
                                set: { self.topic.content = $0 } )
                            )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多