【问题标题】:SwiftUI CoreData - Store Fetch Request DataSwiftUI CoreData - 存储获取请求数据
【发布时间】:2019-12-30 08:57:35
【问题描述】:

我在使用从核心数据实体获取数据时遇到了真正的困难。 我需要做的就是获取数据并在我的代码中使用。 我的方法可能是错误的,因此很困难。 我希望得到数据并存储到一个数组中

我有一个处理数据的函数,但我所能做的就是在视图中显示结果。 我想将数据存储在一个数组中,我试图在其中 EmptyArray.append[newElement] 错误:代码是 dictionaryWord.append(word.englishName) 并且错误是 表达式类型不明确,没有更多上下文

//Game Play
struct gamePlay: View {

    //Set CoreData environment
    @Environment(\.managedObjectContext) var managedObjectContext
    @FetchRequest(entity: Dictionary.entity(), sortDescriptors: []) var dictionary: FetchedResults<Dictionary>


    //Variables for Game Play
    @State private var dictionaryWord: [String] = []
    @State private var correctAnswer = Int.random(in: 0...2)





    //Function to retrieve records from CoreData
    func processListPicture() -> some View {



    NavigationView {


        VStack {

                List(dictionary,id: \.self) { word in

                            HStack {
                                Text(word.englishName)
                                Image(word.imageName)
                                    .resizable()
                                    .frame(width: 50, height: 50)
                                    .scaledToFit()
                                Text("- Urhobo: \(word.urhoboName)")


                            }


                }//End of ForEach / List
        }


    }.navigationBarTitle(Text("English Word Translator"),displayMode: .inline)


    }//End of Function

【问题讨论】:

  • 我刚刚做了更多的阅读,并意识到 SwiftUI 中的 ForEach 与我在 UIKit 中使用它的方式完全不同。如果有人可以帮助我尝试将我的结果从 CoreData ini 的检索结果转换为空数组,那将会有所帮助。我的目标是洗牌阵列并为小型游戏执行随机输出。我已经开始工作的游戏,带有静态数组列表中的元素列表。提前致谢
  • 你能更好地格式化你的问题吗?目前很难知道代码中的问题出在哪里。
  • 对不起,我没有让自己更清楚。我会再试一次。我有包含在 CoreData 中的数据。我能够检索数据,但在列表视图中。我需要将 Fetch Request 的结果存储到一个数组中,例如一个空数组。我希望我已经让自己更清楚了。谢谢

标签: swiftui


【解决方案1】:

如果我理解您的问题,您正在尝试将 FetchedResults(称为“字典”)转换为一个数组,其中 Result 是一个名为 Dictionary 的 CoreData 实体。

要洗牌,你可以这样做:

let shuffledDictionaries: [Dictionary] = dictionary.shuffled()

如果您想保留原始订单:

let dictionaries: [Dictionary] = dictionary.map { $0 }

或者如果您想要任何特定的订单:

let sortedDictionaries: [Dictionary] = dictionary.sorted(by: { ... })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    相关资源
    最近更新 更多