天天看點

《Core Data應用開發實踐指南》一2.3 實體

本節書摘來自華章出版社《core data應用開發實踐指南》一書中的第2章,第2.3節,作者 (美)tim roadley,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視

托管對象模型由一系列實體描述對象構成,這種對象就叫做實體。實體就好比一把餅幹模型切割刀,用于建立托管對象。有了托管對象之後,我們就可以用objective-c代碼來操作其中的資料了。

托管對象模型可以擁有一個或多個實體,每個應用程式的實體數量會有所差别。在制作托管對象之前,首先要把每個“餅幹模型切割刀”(也就是實體)設計好。實體的設計與傳統資料庫中資料表的設計是相似的。

在設計資料庫中的資料表時,你需要完成下列内容:

配置資料表名稱(table name)。

配置字段(field)并為每個字段設定“資料類型”(data type)。

而在設計實體時,你需要做的則是:

配置實體名稱(entity name)。

配置屬性,并為每個屬性設定資料類型。

根據實體來配置nsmanagedobject的子類(該項可選)。

正如資料庫中的表有字段一樣,實體也有屬性。屬性必須有特定的資料類型(比方說字元串或整數)。如果想從實體中建立托管對象,那我們通常會根據實體來建立nsmanagedobject的子類,但這并不是強制性的。采用nsmanagedobject的子類确實有好處,比如可以在托管對象後面使用“點符号”(.)通路相關屬性,這樣可以令代碼更易閱讀。無論是從nsmanagedobject類還是從nsmanagedobject的子類建立執行個體,我們都可以通過托管對象這種形式來操作資料。用資料庫領域的術語來說,托管對象的執行個體類似于資料庫中某張資料表裡的一行(row)。實體的名稱與根據該實體建立出來的nsmanagedobject子類的名稱通常是一樣的。根據實體來建立托管對象時,在實體中配置好的那些屬性也會變成托管對象裡的特性。圖2-2示範了實體是如何在持久化存儲區中的資料庫與托管對象之間建立映射關系的。

《Core Data應用開發實踐指南》一2.3 實體

實體是托管對象模型的基礎,因為它可以把同一個範圍内的資料從邏輯上組織起來。設計托管對象模型的時候,至關重要的一件事就是給實體起名字。給實體所起的名字應該由一兩個英文單詞構成,它要能描述出實體所表示的資料。grocery dude程式的使用者要能夠把待購買的東西放到購物清單中。使用者外出購物時,可能會把“蘋果”和“橘子”添加到購物清單裡。而想到這一點之後,我們就會覺得:這個用來表示購物清單裡待購物品的實體可能起名叫做“水果”會比較好。

在配置實體的時候一定要謹慎:為實體起的名字需要稍微通用一些,以便适應将來的變化,同時還必須足夠具體,以便明确描述出它所表示的資料。有時候名字很好起,而有時候則必須反複權衡,需要根據應用程式目前和以後的功能來精心選擇恰當的實體名稱。由于購物清單裡面不是隻有水果,是以用“item”(貨品)作為實體名稱,應該比“水果”更能準确地描述出清單中的待買物品。

請按下列步驟修改grocery dude,以便添加item實體:

標明model.xcdatamodeld。

點選add entity。

把新實體的名稱改為item。