iPhone:如何处理核心数据关系
我不熟悉核心数据和数据库。现在我需要解析XML并将内容存储在核心数据中。XML如下所示:iPhone:如何处理核心数据关系,iphone,core-data,nsxmlparser,Iphone,Core Data,Nsxmlparser,我不熟悉核心数据和数据库。现在我需要解析XML并将内容存储在核心数据中。XML如下所示: <books> <book id="123A" name="My Book"> <page id="95D" name="Introduction"> <text id="69F" type="header" value="author text"/> <text id="67F" type="foot
<books>
<book id="123A" name="My Book">
<page id="95D" name="Introduction">
<text id="69F" type="header" value="author text"/>
<text id="67F" type="footer" value="author text"/>
</page>
<page id="76F" name="Chapter 1">
<text id="118" type="selection">
<value data="1">value1</value>
<value data="2">value2</value>
<value data="3">value3</value>
</text>
</page>
</book>
<book id="124A"...
价值1
价值2
价值3
查看以下链接:
http://developer.apple.com/cocoa/coredatatutorial/index.html (对于普通可可,但同样的原则适用,因此这应该会有所帮助)不,您需要三个实体。你可以把“书”想象成你正在使用的核心数据数据库。CoreData数据库随后包括许多名为book的实体
我认为您的数据模型有点奇怪,但我想它对您的应用程序来说是有意义的。要将其映射到CoreData,我将:
添加实体书籍、页面、文本
分别向它们添加bookId、pageId和textId
然后添加一个从页面到书籍的关系,以及从文本到页面的关系
到那时,你应该能够通过要求提供所有的页面来打印出一整本书
书=你感兴趣的书
然后按页面ID对所有这些页面进行排序
按照顺序,要求所有有
页面=当前页面
然后按文本ID对这些文本进行排序
可能的问题是,文本可以有多个值,如上面的XML所示。您可以通过添加另一个名为Value的实体来使用它,但我可能会通过将属性“Value”和“type”直接添加到文本实体来解决这个问题。(打印页面时,您可以使用“value”作为第二个排序键。感谢您将my引导到正确的方向!(如何使用NSFetchedResultsController检索“Text”对象的属性(Book>page>Text)