【发布时间】:2018-07-25 16:47:46
【问题描述】:
我是编程新手,最近开始使用 swift(xcode 9.4.1,swift 4.x)。可能解决方案很简单,但我不明白。 www中有一些类似的问题和答案,但他们有不同的代码,我不知道如何适应它。所以我希望你能帮帮我。谢谢!
我有一个 iOS 应用,可以保存运动统计数据。我创建了两个名为 Stat 和 Game 的实体。到目前为止,使用此代码保存工作:
@IBAction func saveButtonPressed(_ sender: UIButton) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let stats = Stat(context: context)
stats.action = action
stats.playerNumber = Int32(playerOfAction)
stats.points = Int32(pointsOfAction)
let statsMinute = Game(context: context)
statsMinute.minute = Int32(currentMinute)
(UIApplication.shared.delegate as! AppDelegate).saveContext()
现在我想获取并显示最后保存的统计信息(然后可以对其进行编辑)。 我正在尝试使用此代码:
func lastStatInfo() {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
do {
let loadMin = try context.fetch(Game.fetchRequest()) as [Game]
lastStatMinuteLabel.text = "\(loadMin.minute)th minute"
} catch {
print("didn't load minute")
}
do {
let loadStat = try context.fetch(Stat.fetchRequest()) as [Stat]
lastStatActionLabel.text = loadStat.action
lastStatPlaylerLabel.text = "# \(loadStat.playerNumber)"
} catch {
print("didn't load stat")
}
}
有三个错误,例如
'Value of type '[Game]' has no member 'minute''.
为什么属性不可访问?我认为这是因为统计信息存储为数组。
如何正确获取数据?
Bonusquestion:我为我的数据模型属性尝试了不同的类型。为了保存球衣号码和积分,只有 Int32 似乎有效。你能告诉我为什么以及它是否是存储它们的最佳方式吗?
【问题讨论】:
标签: ios arrays swift core-data fetch