我对在 Swift 中使用 CoreData 还很陌生,我想创建一个用于学习目的的持久成绩管理器。
我的类结构如下:我的 CoreData 中有一个“学生”实体,与“类(class)”实体具有一对多关系(与“成绩”实体具有一对多关系)。
我想在第一次启动时自动初始化学生,因此用户只需添加类(class)和成绩,但我不知道如何做到这一点。
目前,我的 viewDidLoad()
中有初始化程序,但这基本上意味着它被创建了很多次。
我的问题有什么解决办法吗?
最佳答案
如果我理解正确的话,你只需要 1 个学生实体。
此外,将初始化程序代码放入 viewDidLoad
中不会在应用程序的单次运行中多次调用。
当然,每次启动应用程序时,都会创建一个新学生。
它有一个非常基本且简单的解决方法,围绕获取和创建的概念。
按照伪代码中提到的这些步骤进行操作:
methodCreateOfFetchStudent(){
1. Search Core data for any student entity.
2. if found then return that studend (there will be only 1 found)
3. If No student entity is found (array.count == 0) , then create a student with initialisation code.
4. return that newly created student entity.
}
因此,当您的应用程序第一次统计时,在第 2 步中,不会找到任何学生,它将创建一个学生并向您返回实体。 之后,在每次运行中,该方法每次都会返回旧创建的学生。
我希望我理解您的要求并且这对您有帮助。
关于ios - 在 Swift 中仅初始化一次 CoreData 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44322643/