Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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 CoreData和FetchRequest,与ForEach和;无法调用初始值设定项";_Swiftui_Ios13_Xcode11 - Fatal编程技术网

Swiftui CoreData和FetchRequest,与ForEach和;无法调用初始值设定项";

Swiftui CoreData和FetchRequest,与ForEach和;无法调用初始值设定项";,swiftui,ios13,xcode11,Swiftui,Ios13,Xcode11,我只是迁移到使用CoreDate而不是简单的集合。我正在使用iOS13 beta 8和Xcode11 beta 6 struct BeaconList: View { @Environment(\.managedObjectContext) var managedObjectContext @FetchRequest(fetchRequest: fetchRequest(), animation: nil) var beacons: FetchedResults<Beaco

我只是迁移到使用CoreDate而不是简单的集合。我正在使用iOS13 beta 8和Xcode11 beta 6

struct BeaconList: View {
    @Environment(\.managedObjectContext) var managedObjectContext
    @FetchRequest(fetchRequest: fetchRequest(), animation: nil) var beacons: FetchedResults<Beacon>

    static func fetchRequest() -> NSFetchRequest<Beacon> {
        let request: NSFetchRequest<Beacon> = Beacon.fetchRequest()
        request.sortDescriptors = [NSSortDescriptor(key: "id", ascending: true)]

        return request
    }

    func buildView(name: String, beacons: [Beacon]) -> AnyView {
        return AnyView (
            Section(header: Text(name)) {
                ForEach(beacons) { beacon in
                    BeaconListEntry(beacon: beacon)
                }
            }
        )
    }

var body: some View {
    TabView {
        NavigationView {
            List {
                buildView(name: "MY BEACONS", beacons: beacons.filter { $0.isActive })
            }
            .navigationBarTitle("Beacons")
            .listStyle(GroupedListStyle())
            .navigationBarItems(trailing: addButton)
        }
        .tabItem {
            Image(systemName: "antenna.radiowaves.left.and.right")
            Text("Beacons")
        }

    }
}
(请忽略强制展开,仅用于测试目的)

当我在重写之前将其用于集合时,它起了作用,但现在我明白了这一点

Cannot invoke initializer for type 'ForEach<_, _, _>' with an argument list of type '([Beacon], @escaping (Binding<Beacon>) -> BeaconListEntry)'
无法使用类型为“([Beacon],@escaping(Binding)->BeaconListEntry)”的参数列表调用类型为“ForEach”的初始值设定项

1。“ForEach”的重载存在于这些部分匹配的参数列表中:(数据,内容:@escaping(Data.Element)->content),(范围,内容:@escaping(Int)->content)

知道去哪里找吗?这是使用
FetchedResults
的正确方法吗?

BeaconListEntry初始值设定项要求参数具有类型
绑定
,因此您应该按如下方式修改调用:

struct BeaconListEntry : View {
   @Binding var beacon: Beacon

    var body: some View {
        HStack {
            Text(verbatim: beacon.name!)
        }
    }
}
BeaconListEntry(beacon: .constant(beacon))
BeaconListEntry(beacon: .constant(beacon))