CoreData和的NSXMLParser
嗨朋友#1,CoreData和的NSXMLParser
我使用的NSXMLParser我从NSURLConnection的数据后分析网络的XML文件。 XML有许多“项目”,每个项目包含1个类别。 在CoreData模块中,我有一个与一个Category有关系的Item实体。
解析XML文件并敲击消息解析器:didStartElement:...使用“Item”元素创建Item的NSEntityDescription。然后解析器再次在消息解析器中到达Category项目:didStartElement:...并为类别创建一个NSEntityDescription。
的XML:
<item>
<title>Plates</title>
<category>Kitchen</category>
<price>14</price>
<picture></picture>
所以会发生什么是保存上下文:呼叫正在呼吁currentCategory也先CURRENTITEM未完成创建。
您似乎节省得太频繁。在等待XML文件保存结束时,这可能不是一个好主意,但您可能希望等到您完成一个“实体”。
但是,我建议您也考虑一下不同的解析器。 TouchXML对你来说可能更有用,因为它不像这样低级别,并且可以使导入过程更容易概念化。
在分析完整个XML文件并插入需要插入的所有对象之前,不需要保存上下文。在解析例程中删除-save:
调用,并在解析操作完成时调用它。
这是一个好主意,我将只保存在每个项目循环结束时,这会给我一个完整的数据循环。 感谢您的回复 – 2010-02-25 16:12:00
这是一个很好的提示,我将在每个实体后保存。我不知道我可以保存所有的东西,但这似乎更安全。 关于TouchXML我会看看我已经下载了它,但我只是从XML中读取,所以它看起来像NSXMLParser足以完成任务。 谢谢 – 2010-02-25 16:11:21