2012-10-10 25 views
0

使用核心數據時,我如何將值插入到數據庫中,甚至與數據庫交互。有沒有一個很好的教程呢?我已經閱讀了Core Data教程,但大部分文件都是在本地完成的。

UPDATE
從我剛纔的問題有人回答了這個
"Core Data can use a database to accomplish this, but that's it's business, not yours. When you use Core Data, it is a black box. You tell it to save the data and then step out of the way."
這是否意味着它會自動執行數據庫端給我嗎?iOS:使用核心數據插入數據庫

謝謝!

回答

0

核心數據不是數據庫管理器,並且不僅僅是簡單地與數據庫進行交互。至少,您應該將核心數據視爲ORM。也許,瞭解Core Data的最佳方式是將其視爲圖形管理員。您將通過上下文(NSManagedObjectContext)與核心數據進行交互,以便您從中獲取對象,並插入,編輯和刪除它們。對象是NSManagedObject的子類。關心的一件重要事情是線程。 NSManagedObject不是線程安全的,你不應該在線程之間傳遞它們。改爲使用NSManagedObjectsID。重要的是,您不需要關心核心數據如何存儲事物,您可以設置商店的格式,但僅此而已(就此而言,您在選擇商店時必須考慮幾件事情,如性能,以及是否需要在運行之間保持數據,但讓我們的核心數據處理細節)。

如果你想知道更多,Marcus Zarra's book is excellent

+0

好吧,這是有道理的,但我想我的問題是。如果我存儲了某些內容,使用該應用的其他人是否可以訪問該存儲值?例如,如果「A」想要使用核心數據存儲他的地址,可以「B」訪問「A」的地址。這正是我想要完成的。謝謝你的答覆Ariel。 – AustinT

+0

通過A和B您的意思是不同的應用程序?那就不要。如果您的意思是訪問其他設備的數據,那麼您需要將數據上傳到雲(例如iCloud或Parse.com)。我並不真正瞭解你的需求。 –

1

核心數據是一個黑盒子,因爲它是面向對象的API,用於與設備(和iCloud)上的SQLite數據庫進行交互。如果您推送到具有SQL數據庫後端的Web服務......那麼,我已經使用了一個用於提供休息界面的Web服務的php控制器。然後我從我的設備中獲取數據,然後按下其他控制器方法,傳遞任何適當的數據作爲http帖子中的參數。不知道這是一般的還是最佳的做法,但這就是我的經驗

+0

的答覆好感謝。好吧,當我使用核心數據時,它將爲我處理數據庫端。那麼在使用核心數據時,我需要連接到服務器嗎?非常感謝。 – AustinT

+1

這取決於你想要做什麼。如果你想推送數據到服務器,那麼這是與設備上的SQLite不同的數據庫。是的,你需要發送一個NSURLRequest到你的服務器,在一個帖子中明確地傳遞數據。核心數據用於與本地數據庫進行交互(如果還有這種情況,還可以使用iCloud) – geraldWilliam

+0

好吧,如果我想與非本地數據庫進行交互,我不會使用核心數據?當你說本地數據庫你的意思是由設備本身?謝謝你,geraldWilliam。 – AustinT