gpt4 book ai didi

ios - 在哪里放置数据数组

转载 作者:行者123 更新时间:2023-11-28 08:01:34 24 4
gpt4 key购买 nike

我正在尝试最好地遵循 MVC。放置我的数据数组的“正确”位置在哪里?我说的是下面的 people 数组。它应该放在下面的 View Controller 中,还是应该是在 View Controller 中实例化的数据服务/数据存储类的一部分(通过依赖注入(inject))?我在两个地方都看到过它。

class ViewController: UIViewController {
var people: [Person] = []

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }

let context = appDelegate.persistentContainer.viewContext

let fetchRequest: NSFetchRequest<Person> = Person.fetchRequest()

people = try? context.fetch(fetchRequest)
}
}

最佳答案

按照MVC的方式存放在viewController里面完全没问题。虽然,您可以将它移动到某个单独的 source 对象或 dataProvider,但大多数时候它没问题,而且从您的代码看来对我来说没问题。

我有几点意见要给你:

1) 最好从 AppDelegate 中移出 CoreData 逻辑——无论是分离单例还是服务对象(最好是,因为单例很难测试)

2) context.fetch 最好包裹在 do {} catch {} 大多数时候阻止

3) 你不必等到 viewWillAppear 触发来获取你的数据,至少从提供的代码中获取数据

4) 最好用fetchPersons这样的方法将获取逻辑移到一些服务中

关于ios - 在哪里放置数据数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46514158/

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