我真的很亏..在过去的两周里,我一直在努力调整数据在我的应用中解析,显示和保存的方式。
我有两个视图控制器,第一个有四个表,当选择加载一个uitableview,其中包含从xml文件解析的数据。每个xml文件都不同,但具有彼此相关的关键字段。我需要加快我在uitableview中显示这些数据的方式,就像我在第二次搜索时一样,当我检查所有制造商可以使用的每一个模型的我的ManufactureID时......需要花费大量的时间来加载。
我希望在视图即将加载之前在幕后执行此操作,我听说实现此目的的最佳方法是使用核心数据..但我不知道如何使用它我现在正在做的事情。
如果您有任何示例,建议或任何可能对我有帮助的事情,我现在可以认真地使用某些人的输入,因为我只是被放弃了。例如,如何将我的.xml文件中的数据放入coredata?如何创建关系船ID?等
答案 0 :(得分:1)
首先,有没有理由将信息保存在XML文件中?如果您只是从头开始将所有内容移动到CoreData数据存储区而不是在启动时将所有内容解析/预加载到内存存储中(或其他任何内容),那么一切都会更容易(也更快!)。
关于如何建模关系,您可以始终将CoreData模型设置为与XML数据完全匹配。因此,例如,每个文件一个实体和所述文件中每个记录一个属性。您 没有理由使用CoreData Relationships来建模XML中的关系。如果你已经在文件中有了ID,那么只需创建一个名为xmlId
的属性或者其他东西,然后根据你的SQL查询进行获取。你会错过很多关于CoreData的自动ORM,但如果你一直在处理XML,我怀疑你会注意到。
如果你真的想要设置CoreData管理对象之间的关系,你必须以某种方式通过XML中的ID匹配对象,方法是将ID导入CoreData,然后进行数学计算,或者以某种方式解析时要注意这一点。如果不了解有关数据建模的更多信息,很难在此提供任何具体建议。
有一些示例代码可以完成您想要的一半(它将XML读入内存中的CoreData存储,但不会对任何关系进行建模)。查看TopSongs(http://developer.apple.com/library/ios/#samplecode/TopSongs)