【问题标题】:Get index number of CoreData at List in SwiftUI在 SwiftUI 的 List 中获取 CoreData 的索引号
【发布时间】:2020-12-09 12:56:50
【问题描述】:

我正在尝试获取列表中 Coredata 的索引号。

这是我当前的代码

struct ContentView: View {
    
    @Environment(\.managedObjectContext) var managedObjectContext
    @FetchRequest(fetchRequest: ToDoItem.getAllToDoItems()) var toDoItems:FetchedResults<ToDoItem>
    
    @State private var newTask = ""
    
    var body: some View {
        VStack{
            HStack{
                TextField("new Task", text: $newTask)
                
                Button(action:{
                    
                //saving event title
                let toDoItem = ToDoItem(context: self.managedObjectContext)
                toDoItem.title = self.newTask
                    
                do {
                    try self.managedObjectContext.save()
                } catch {
                    print(error)
                }
                    self.newTask = ""

                })
                {
                    Text("Add")
                }
            }
            
            
            List{
                
                ForEach(self.toDoItems) { toDoItem in
                    HStack{
                    Text("\(toDoItem.title!)")
                        
                    }.onTapGesture {
                        
                        print("Print current Index")
                    }
                }
                }
        }
    }
}

这是我尝试过的:

我尝试使用here 的解决方案,但一直收到此错误

Cannot convert value of type 'FetchedResults<ToDoItem>' to expected argument type 'Range<Int>'

所以我尝试使用循环语句检查所有 CoreData 元素,直到匹配相同的名称,但问题是用户可以拥有多个同名的 CoreData 项目。

无论如何都可以在 List 中获取 CoreData 的索引号吗?

【问题讨论】:

标签: swiftui


【解决方案1】:

这是一种可能的方法

ForEach(self.toDoItems.indices, id: \.self) { index in
    HStack{
        Text("\(toDoItems[index].title!)")
        
    }.onTapGesture {
        
        print("Print current Index: \(index)")
    }
}

【讨论】:

    猜你喜欢
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    相关资源
    最近更新 更多