簡體   English   中英

iPhone:如何處理核心數據關系

[英]iPhone: How to handle Core Data relationships

我是Core Data和數據庫的新手。 現在我需要解析XML並將內容存儲在Core Data中。 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"...

根據我的理解,我需要四個實體,如“書籍”,“書籍”,“頁面”和“文本”。 我想知道如何正確設置關系以及如何將Page對象添加到Book對象以及如何檢索Text對象屬性的值? 我發現的教程主要涉及一個實體,所以我並沒有真正理解這一點。感謝任何幫助!

不,你需要三個實體。 您可以將“Books”視為您正在使用的CoreData數據庫。 然后,CoreData數據庫包含許多名為book的實體。

我認為你擁有的數據模型有點奇怪,但我想這對你的應用程序有意義。 要將它映射到CoreData,我會:

添加實體Book,Page,Text

分別為它們添加bookId,pageId,textId

然后添加從頁面書籍 ,從文本頁面的關系

到那時你應該能夠通過詢問所有的頁面來打印出整本書

=你感興趣的書

然后按pageId排序所有這些頁面

並按順序,要求所有具有Page =當前頁面的文本

然后按textId命令這些文本。

可能存在的問題是Text可以有多個值,如上面的XML所示。 您可以通過添加另一個名為Value的實體來使用它,但我可能會通過直接向Text實體添加屬性“value”和“type”來解決它。 (然后,您可以在打印頁面時使用“value”作為第二個排序鍵。

看看這些鏈接: http//developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CoreData/ http://developer.apple.com/cocoa/coredatatutorial/index.html(對於普通的Cocoa,但是同樣的原則,所以這應該有幫助)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM