Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SwiftUI Picker中为NSManagedObject设置默认值?_Swiftui_Swiftui Form - Fatal编程技术网

在SwiftUI Picker中为NSManagedObject设置默认值?

在SwiftUI Picker中为NSManagedObject设置默认值?,swiftui,swiftui-form,Swiftui,Swiftui Form,我正在使用SwiftUI中的Picker从核心数据列表NSManagedObjects中进行选择,但无法让Picker显示默认值。选择一个值后,它也不会设置新值。有没有办法让选择器显示默认值 这里是设置NSManagedObject属性的地方 extension Company { @nonobjc public class func fetchRequest() -> NSFetchRequest<Company> { return NSFetchR

我正在使用SwiftUI中的
Picker
从核心数据列表
NSManagedObject
s中进行选择,但无法让Picker显示默认值。选择一个值后,它也不会设置新值。有没有办法让选择器显示默认值

这里是设置NSManagedObject属性的地方

extension Company {

    @nonobjc public class func fetchRequest() -> NSFetchRequest<Company> {
        return NSFetchRequest<Company>(entityName: "Company")
    }

    @NSManaged public var id: UUID?
    @NSManaged public var name: String?
    @NSManaged public var companyContacts: NSSet?
    @NSManaged public var companyRoles: NSSet?

    //...

}
扩展公司{
@nonobjc公共类func fetchRequest()->NSFetchRequest{
返回NSFetchRequest(entityName:“公司”)
}
@NSManaged公共变量id:UUID?
@NSManaged公共变量名称:字符串?
@NSManaged public var companyContacts:NSSet?
@NSM管理的公共var公司:NSSet?
//...
}
这就是我尝试使用它的地方

struct AddRoleSheet: View {
    @Environment(\.managedObjectContext) var moc
    @FetchRequest(
        entity: Company.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \Company.name, ascending: true)
        ]
    ) var companies: FetchedResults<Company>

//...

@State var company: Company? = // Can I put something here? Would this solve my problem?

//...

var body: some View {
    NavigationView {
        Form {
            Section {
                Picker(selection: $company, label: Text("Company")) {
                    List {
                        ForEach(companies, id: \.self) { company in
                            company.name.map(Text.init)
                        }
                    }
                }
                //...
            }
        }
        //...
    }
}
struct AddRoleSheet:View{
@环境(\.managedObjectContext)变量moc
@获取请求(
实体:Company.entity(),
sortDescriptors:[
NSSortDescriptor(键路径:\Company.name,升序:true)
]
)var公司:获取结果
//...
@State var company:company?=//我能在这里放点什么吗?这能解决我的问题吗?
//...
var body:一些观点{
导航视图{
形式{
部分{
选择器(选择:$company,标签:Text(“company”)){
名单{
ForEach(companys,id:\.self){company in
company.name.map(Text.init)
}
}
}
//...
}
}
//...
}
}

在View.init阶段还没有获取结果,因此请尝试以下操作

@State var company: Company? = nil   // << just initialize

//...

var body: some View {
    NavigationView {
        Form {
            Section {
                Picker(selection: $company, label: Text("Company")) {
                    List {
                        ForEach(companies, id: \.self) { company in
                            company.name.map(Text.init)
                        }
                    }
                }
                //...
            }
        }
    }.onAppear {
       // here companies already fetched from database
       self.company = self.companies.first      // << assign any needed
    }
}

@State var company:company?=nil/在View.init阶段还没有获取结果,因此请尝试以下操作

@State var company: Company? = nil   // << just initialize

//...

var body: some View {
    NavigationView {
        Form {
            Section {
                Picker(selection: $company, label: Text("Company")) {
                    List {
                        ForEach(companies, id: \.self) { company in
                            company.name.map(Text.init)
                        }
                    }
                }
                //...
            }
        }
    }.onAppear {
       // here companies already fetched from database
       self.company = self.companies.first      // << assign any needed
    }
}
@状态变量公司:公司?=nil//