gpt4 book ai didi

swift - 如何正确进行 MVC CoreData 和 NSDefaults

转载 作者:行者123 更新时间:2023-11-30 14:15:16 27 4
gpt4 key购买 nike

我有一个名为 DataModel.swift 的 swift 文件,它存储一个结构。

我的 viewController.swift 从 DataModel.swift 初始化一个 struct 类型的变量。有了这个变量,我可以使用 DataModel.swift 来获取值、计算并返回到 ViewController.swift

到目前为止,一切正常。但每次 viewController.swift 初始化该结构时,它也会重置该结构。我希望这个结构数据是持久的,这样当用户回来时结果仍然存在。

解决这个问题的最佳方法是什么?

使用核心数据?使用 NSUserDefaults 吗?

我知道如何使用 core-data 或 NSUserDefaults 在 ViewController 上存储/读取数据,但我担心如果我这样做,我最终会得到 ViewController 上的所有代码,这对我来说听起来不像 MVC。

或者有没有一种方法可以存储、加载和计算将代码保留在我的 DataModel.swift 文件中的值?

下面是一些代码示例。

ViewController.swift结构初始化如下:

var calculations = ConcreteModel(
width: 0,
length: 0,
thickness: 0,
pricePerCubicMetre: 0,
unit: "metric")

DataModel.swift 文件如下:

struct ConcreteModel {
var width: Double
var length: Double
var thickness: Double
var pricePerCubicMetre: Double
var unit: String

init (
width: Double,
length: Double,
thickness: Double,
pricePerCubicMetre: Double, unit: String){

self.width = width
self.length = length
self.thickness = thickness
self.pricePerCubicMetre = pricePerCubicMetre
self.unit = unit
}

func gotVolume () -> Bool {
return false
}
}

func getVolume () -> Double {
return calculation
}

func getCost () -> Double {
return calculation
}
}

最佳答案

您的想法是正确的。将您选择的持久性代码放入 DataModel 类中。

关于swift - 如何正确进行 MVC CoreData 和 NSDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31263309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com