Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone:如何处理核心数据关系_Iphone_Core Data_Nsxmlparser - Fatal编程技术网

iPhone:如何处理核心数据关系

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

我不熟悉核心数据和数据库。现在我需要解析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="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)