我是Core Data的新手,我遇到了問題。
我有一個文件「db.sqlite」,它有3個表,每個包含大約10k條記錄。
現在我的問題是我可以將這個文件添加到我的項目,並使用CoreData API訪問(選擇/更新)數據。
謝謝您提前。
通過Core Data API訪問.sqlite文件
1
A
回答
4
您無法使用Core Data讀取任意SQL文件。你也無法將任意的SQL文件轉換爲Core Data可以使用的SQL文件。核心數據的sqlite模式沒有記錄,並且不斷變化。核心數據只會讀取和寫入其架構,每個sqlite存儲文件都必須配置爲特定的數據模型文件。直接爲Core Data創建SQL存儲始終是一個脆弱的解決方案。
理解Core Data不是SQL很重要。實體不是表格。對象不是行。屬性不是列。關係不是連接。核心數據是一個對象圖管理系統,它可能會或可能不會持久化對象圖,並且可能會或可能不會在後臺使用SQL來做到這一點。試圖用SQL語言來思考覈心數據會導致你完全誤解核心數據,並導致很多悲傷和浪費時間。
由於Mundi pointed out,您需要使用標準SQL C API讀取現有的SQL文件,然後將該數據加載到託管對象中,並讓Core Data將對象保存到其SQL存儲中。這可能聽起來像很多額外的工作,但事實上,您正在從僅限於將數據從磁盤上獲取數據的有限SQL API轉換爲爲應用程序提供完整數據模型的Core Data API。
2
Core Data API實際上隱藏了所謂持久存儲的機制。它更像是一種對象建模API,可以非常高效地保存數據。它也可以使用與sqlite不同的數據庫。
因此,如果你想使用核心數據,我會建議首先導入所有的記錄和創建一個新的數據庫文件與核心數據。您可以使用SQLite API讀取現有數據庫和Core Data API,將新的面向對象數據寫入新數據庫。
一旦您的所有原始數據都在覈心數據中,您應該堅持這一點。
相關問題
- 1. Image Wells,Core Data和Sqlite文件
- 2. 從Core Data存儲創建.sqlite文件?
- 3. 訪問通過API
- 4. Core Data中的訪問相關對象
- 5. 通過訪問SQLite在資產文件夾中顯示數據
- 6. git通過SSH訪問www-data到bitbucket
- 7. 通過.htaccess訪問文件
- 8. 通過Facebook API訪問事件
- 9. 通過Drive API訪問文件夾中的文件?
- 10. 查看或從設備中檢索Core Data .sqlite文件
- 11. 與Core Data SQLite文件接口的Web服務器代碼?
- 12. 無法通過JHipster訪問API文檔
- 13. 訪問/data/data/com.whatsapp
- 14. 通過API訪問所有Eventbrite事件
- 15. 通過Java API訪問BusinessObjects?
- 16. 通過Ruby訪問Evernote API
- 17. 通過https訪問REST API
- 18. 通過Instagram API訪問
- 19. 通過流API訪問FILESTREAM
- 20. 通過Firefox訪問RESTful API
- 21. 訪問通過圖形API
- 22. 通過api訪問swarm-master
- 23. 爲什麼Core Data比SQLite更快
- 24. Encrypted-Core-Data SQLite語法錯誤
- 25. Sqlite的API布爾訪問
- 26. iPhone,Core Data和JSON
- 27. 使用Spark通過REST API訪問AWS S3上的文件
- 28. 如何通過Google Data API將文件上傳到Google文檔?
- 29. 通過API訪問instagram通知訂閱
- 30. 訪問外部SQLite文件,Android
+1 @Mundi - 非常感謝您的回答。如果我只想讀取數據,即(選擇)我可以使用CoreData嗎? – SNR
我不這麼認爲。你將不得不使用SQLite API。您處理每行的字典,將其轉換爲核心數據實體並保存。 – Mundi
核心數據將只使用核心數據模式讀取SQL文件,並使用提供給持久存儲協調器的'.xcdatamodel'生成。你不能使用它讀取任意的sql文件。這不是Core Data的用處。 – TechZen