SwiftUI CoreData - 存储获取请求数据
Posted
技术标签:
【中文标题】SwiftUI CoreData - 存储获取请求数据【英文标题】:SwiftUI CoreData - Store Fetch Request Data 【发布时间】: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 的结果存储到一个数组中,例如一个空数组。我希望我已经让自己更清楚了。谢谢 【参考方案1】:如果我理解您的问题,您正在尝试将 FetchedResults
要洗牌,你可以这样做:
let shuffledDictionaries: [Dictionary] = dictionary.shuffled()
如果您想保留原始订单:
let dictionaries: [Dictionary] = dictionary.map $0
或者如果您想要任何特定的订单:
let sortedDictionaries: [Dictionary] = dictionary.sorted(by: ... )
【讨论】:
以上是关于SwiftUI CoreData - 存储获取请求数据的主要内容,如果未能解决你的问题,请参考以下文章
来自先前选择器的选择器值 - CoreData/SwiftUI
过滤后的 SwiftUI CoreData 列表中的 Sum 属性
使用 SwiftUI ForEach 从 NSOrderedSet 获取字符串值