SwiftUI CoreData-存储获取请求数据

时间:2019-12-30 08:57:35

标签: swiftui

使用“从核心数据实体获取数据”确实有困难。 我需要做的就是获取数据并在我的代码中使用。 我的进场技巧可能错了,因此很困难。 我希望获取数据并存储到一个数组中

我有一个处理数据的功能,但是我所能做的就是在视图中显示结果。 我想将数据存储在Array中,尝试在其中进行 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

1 个答案:

答案 0 :(得分:0)

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

要随机播放,您可以执行以下操作:

function main(splash)
  assert(splash:go('https://www.strava.com/login'))
  assert(splash:wait(5))
 local form = splash:select('#login_form')
  assert(form:fill({ email='email', password='password', remember_me=true })) 
  assert(form:submit()) 
end
if pcall(main) then print(debug.traceback())
  end

如果您想保留原始顺序:

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

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

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