2017-06-02 74 views
0

我在Swift中使用CoreData是一个新手,我想创建一个用于学习目的的持久级别管理器。我的课程结构如下:我的CoreData中有一个'学生'实体,与'课程'实体有多对多关系(与'成绩'实体有多对多关系)。在Swift中初始化CoreData实体一次

我想在初次启动时自动初始化学生,所以用户只需添加课程和成绩,但我无法找到如何去做。

我目前在我的viewDidLoad()有初始化程序,但基本上意味着它被创建了很多次。

我的问题有什么解决办法?

+0

只检查实体是否存在于核心数据中,然后更新否则添加新实体 –

+0

如果你的意思是你只有一个'Student'的实例,那么把'Student'放入核心数据是绝对没有意义的。 –

回答

0

如果我正确理解它,你只想要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中,学生不会被发现,它会创建一个学生,并返回实体。 然后在每次运行中,该方法每次都会返回旧创建的学生。

我希望我明白你的要求,这对你有帮助。