Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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
Core data CoreData的可观察对象-类型为';NSSet?&x27;没有下标_Core Data_Swiftui_Indices - Fatal编程技术网

Core data CoreData的可观察对象-类型为';NSSet?&x27;没有下标

Core data CoreData的可观察对象-类型为';NSSet?&x27;没有下标,core-data,swiftui,indices,Core Data,Swiftui,Indices,这是我的模型配置 class ModelsConfig: ObservableObject { @Published var lists: [ListModel] = [] @Published var reminders: [Reminder] = [] } struct ListDetailView: View { @Binding var selectedIndex: Int @State var isSelected: Bool = false

这是我的模型配置

    class ModelsConfig: ObservableObject {
    @Published var lists: [ListModel] = []
    @Published var reminders: [Reminder] = []
}
struct ListDetailView: View {
    @Binding var selectedIndex: Int
    @State var isSelected: Bool = false
    @EnvironmentObject var config : ModelsConfig

ForEach(config.lists[selectedIndex].reminders.indices, id: \.self) { reminderIndex in
                            HStack {
                                Button(action: {
                                    DispatchQueue.main.asyncAfter(deadline: .now() + 1){
                                        deleteReminder(at: reminderIndex)
                                    }
                                    
                                }, label: {
//                                    ReminderCell(reminder: list.reminders[reminderIndex])
                                    ReminderCell(reminder: config.lists[selectedIndex].reminders[reminderIndex])
                                })
                            }
                            .padding(.bottom)
                        }
那些是我的模特

struct ListModel: Hashable {
    var color: String
    var text: String
    var reminders: [Reminder]
}
struct Reminder: Hashable {
    var title: String
    var notes: String
    var date: Date
    var index: Int
    var list: ListModel
}
在此之前,我可以通过ModelsConfig的帮助在这个视图中访问索引

    class ModelsConfig: ObservableObject {
    @Published var lists: [ListModel] = []
    @Published var reminders: [Reminder] = []
}
struct ListDetailView: View {
    @Binding var selectedIndex: Int
    @State var isSelected: Bool = false
    @EnvironmentObject var config : ModelsConfig

ForEach(config.lists[selectedIndex].reminders.indices, id: \.self) { reminderIndex in
                            HStack {
                                Button(action: {
                                    DispatchQueue.main.asyncAfter(deadline: .now() + 1){
                                        deleteReminder(at: reminderIndex)
                                    }
                                    
                                }, label: {
//                                    ReminderCell(reminder: list.reminders[reminderIndex])
                                    ReminderCell(reminder: config.lists[selectedIndex].reminders[reminderIndex])
                                })
                            }
                            .padding(.bottom)
                        }
现在,我正试图借助核心数据达到与此相同的指数

 @FetchRequest(sortDescriptors: [])
    var list: FetchedResults<CDListModel>
ForEach(list[selectedIndex].reminders.indices , id: \.self) { reminderIndex in
                HStack {
                            Button(action: {
                                DispatchQueue.main.asyncAfter(deadline: .now() + 1){
                                    deleteReminder(at: reminderIndex)
                                }
                                
                            }, label: {
                                ReminderCell(reminder: list[selectedIndex].reminders[reminderIndex])
                            })
                        }
                        .padding(.bottom)        
                    }
@FetchRequest(排序描述符:[])
变量列表:FetchedResults
ForEach(列表[selectedIndex].employers.index,id:\.self){employerIndex in
HStack{
按钮(操作:{
DispatchQueue.main.asyncAfter(截止日期:.now()+1){
删除提醒(位于:提醒索引)
}
},标签:{
提醒单元格(提醒:列表[selectedIndex]。提醒[reminderIndex])
})
}
.padding(.bottom)
}
但它不允许我这样做。如何访问coredata中的索引


核心数据关系中的是
(NS)集合
s。出于性能原因,它们是无序的

最简单的解决方案是将集合转换为数组

ForEach((list[selectedIndex].reminders.allObjects as! [CDReminder]).indices , id: \.self) { reminderIndex in
考虑将关系声明为本机
Set
。Swift
Set
s是一个序列和got索引