IOS Core Data的基本使用

2021-07-23 04:01:54 字數 1855 閱讀 3730

在建立專案過程時,請選中乙個標籤為use core data的核取方塊

專案導航面板中,有乙個名為core_data_persistence.xcdatamodeld的檔案,在這裡面會有乙個資料模型編輯器。它代替了使用**建立nsobject的子類並讓其遵循nscoding和nscopying的傳統方式。而是現在資料模型編輯器中建立一些實體(entity),然後再**中為這些實體建立託管物件(managed object)。

注意:「實體」表示對物件的描述,而「託管物件」表示在執行時建立的該實體的具體例項

實體有屬性(property)組成:attribute、relationship、fetched property

鍵—值編碼

我們的**中不在使用訪問方法和修改方法,而是使用鍵—值編碼來設定屬性或檢索它們的已有值。在操作託管物件,用於設定和檢索屬性值的鍵就是希望設定的特性的名稱。因此,要從託管物件中檢索儲存在name特性中的值或者要為託管物件的屬性設定新值,需要呼叫一下方法

nsstring *name = [mymanagedobject valueforkey:@"name"];

[mymanagedobject setcvalue:@"abc"

forkey:@"name"];

在上下文中結合

這些託管物件位於持久儲存中,有時也稱為支援儲存(backing store)。預設情況下,core data應用將支援儲存實現為儲存在應用documents目錄中的sqlite資料庫。期間的相關訪問操作都將由core data完成。除了sqlite之外,支援儲存還可以作為二進位制檔案實現,甚至以xml形式儲存。

出了建立它之外,我們不會直接操作持久儲存,而是使用所謂的託管物件上下文。上下文協調對持久儲存的訪問,同時儲存自上次儲存物件以來修改過的屬性資訊。上下文還能通過撤銷管理器來註冊所有更改,這意味著你可以撤銷單個操作或會滾到上次儲存的資料。

建立新的託管物件

nsmanagedobject *thing = [nsentitydescription insertnewobjectforentityforname:@"thing"

inmanagedobjectcontext:context];

獲取託管物件

nsfetchrequest *request = [[nsfetchrequest alloc] init];

nsentitydescription *entitydescr = [nsentitydescription entityforname:@"thing"

inmanagedobjectcontext:context];

[request setentity:entitydescr];

也可以使用nspredicate類為獲取請求指定條件

nspredicate *pred = [nspredicate predicatewithformat:@"(name = %@)",namestring];

[request setpredicate:pred];

建立了獲取請求並為它提供實體描述之後,使用nsmanagedobjectcontext中的例項方法來執行請求:

nserror *error;

nsarray *objexts = [context executefetchrequest:request error:&error];

if(objects == nil)

iOS MBProgressHUD的基本使用

方式1.直接在view上show hud mbprogresshud showhudaddedto self.view animated yes retain hud.delegate self 常用的設定 小矩形的背景色 hud.color uicolor clearcolor 這兒表示無背景 顯...

scanf gets getchar的基本使用

scanf 是在c語言中最常用的輸入函式,它需要我們嚴格按照要求進行輸入,除非你用對scanf 使用了正規表示式 對於scanf 當它遇到空格 回車 或者tab鍵時,都會自動停止輸入,剩下的內容逗留在緩衝區中,所以如果需要輸入字串,不推薦使用它。關於正規表示式 是個集合的標誌,特指讀入此集合所限定的...

PHP Elasticsearch的基本使用方法

一 連線elasticsearch 1 elasticsearch開啟之後,可以直接通過檢視基本資訊。2 將composer vendor下的檔案複製到ot thinkphp library vendor elasticsearch目錄下。3 連線elasticsearch,public es 初始...