我在苹果开发者论坛和Stack Overflow上阅读了很多关于Core Data的文章,现在想在开始实现之前问几个问题。我的应用程序目前只使用编程数据。
应用程序的想法是:用户是一名赛车手。他在不同的赛道上驾驶。每个赛道都有几个命名曲线,以特定的速度和效率驾驶通过。因此,应用程序必须存储赛道、每个赛道的多个曲线以及许多(例如200个)通过单独曲线的驾驶过程,存储顶速和效率(例如"优秀"、"良好"、"不好"等字符串)。驾驶过程在应用程序中用于队列,在达到200个驾驶过程后,最后一个进入的先出去,以便随着时间和驾驶员的经验改善统计数据。
我已经创建了具有适当参数和关系的实体。
现在,作为起点,我想定义一个示例赛道,在应用程序第一次启动时创建,并在以后加载由用户更改或输入的数据。
1- 我认为,由于数据量不大,我可以在第一次运行时生成数据,将其存储到Core Data中,然后在每次启动应用程序时,以某种方式检查是否存在Core Data,并基于此创建新的或使用当前的。我阅读了有关将数据存储到plist并通过xml导入它们等内容的文章,但我不需要这样做,对吗?我可以创建、保存,然后检查是否存在某些数据来知道这是第一次启动应用程序还是已经启动过了吗?
2- 我不确定如何将队列保存到Core Data中。目前,我在脑海中设计的是,每个曲线的队列都由具有与曲线之间的一对多关系的驾驶过程实体组成,其中包含一个名为索引的参数,以便我知道哪个驾驶过程是第一个和最后一个。然后我不确定如何实现删除第一个驾驶过程的队列功能。我会被迫加载所有数据,在队列中处理它,然后将所有数据保存到Core Data中吗?还是它接受某种形式的删除第一个驾驶过程并重新计算索引?
3- 我是否正确地说,所有数据加载都应在我的视图控制器中的"viewWillAppear"中进行?用户按下保存或输入按钮后立即保存它们?
我不要求代码,只是希望有人告诉我这是否是一般良好的方法,或者您是否会完全不同地做。
谢谢。
-viewDidAppear:
中加载数据并展示一个活动指示器视图,那么这就不是问题了。但我的担心是,如果加载过程太长,-viewWillAppear:
将一直等待,直到加载代码完成(除非在后台线程中运行)。 - user836263