[英]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.