CoreData入門

一它碎、判斷是否適合使用Core Data

要使用持久化數(shù)據(jù),我們有多種選擇:

1.NSUserDefaults: ? 這種方式通常用于保存應(yīng)用首選項.NSUserDefaults很像使用鍵值存儲的NSDictionary疟丙,可存儲用NSNumber怒坯、NSString府蔗、NSDate就斤、NSData培漏、NSDictionary或NSArray表示的值,還可以存儲任何遵守了NSCoding協(xié)議的對象舰讹。如果使用鍵值對、字典或數(shù)組可滿足應(yīng)用的持久化需求闪朱,就可使用NSUserDefaults月匣。

2.keychain:對于應(yīng)用里存在對安全性要求的賬號密碼等數(shù)據(jù)可以存放在這里,由于keychain是獨立于APP的沙盒存放的奋姿,屬于系統(tǒng)級的存放锄开,所以不會隨著應(yīng)用的刪除而刪除。(這里有一篇簡單使用的例子http://www.reibang.com/p/9188235eedab

3.屬性列表(plist):NSDictionary和NSArray都支持讀寫用戶定義的屬性列表文件称诗,這種文件采用XML格式萍悴,可存儲NSNumber、NSString、NSDate癣诱、NSData计维、NSDictionary和NSArray。如果使用字典或數(shù)組可滿足應(yīng)用的持久化需求撕予,就可使用屬性列表文件鲫惶。

4.編碼器(Coder)和鍵式歸檔(Key Archive):NSCoder和NSKeyedArchiver支持將任何對象存儲到二進制文件中。要使用這種持久化方式实抡,要存儲的每個自定義對象都必須實現(xiàn)NSCoder定義的方法欠母,而開發(fā)人員必須負責保存和加載。如果只需幾個自定義對象就能滿足應(yīng)用的持久化需求吆寨,就可使用這種方式赏淌。

5.直接使用SQLite:應(yīng)用可使用C語言庫libsqlite直接與SQLite數(shù)據(jù)庫交互。SQLite是一種嵌入式關(guān)系數(shù)據(jù)庫啄清,不需要服務(wù)器六水,支持SQL92描述的大部分標準SQL語言。在iOS應(yīng)用中辣卒,使用SQLite可實現(xiàn)SQL支持的任何數(shù)據(jù)持久化邏輯缩擂,如定義數(shù)據(jù)庫表和關(guān)系、插入數(shù)據(jù)添寺、查詢數(shù)據(jù)以及更新和刪除數(shù)據(jù)胯盯。這種方式的缺點是,應(yīng)用需要在對象和SQL之間建立映射计露,需要編寫檢索和保存數(shù)據(jù)的SQL查詢博脑,還需要編寫代碼來跟蹤需要保存的對象。

6.Core Data:提供了直接使用SQLite的大部分靈活性票罐,同時應(yīng)用無需關(guān)系數(shù)據(jù)庫使用機制叉趣。如果應(yīng)用需要的數(shù)據(jù)很多、需要維護對象之間的關(guān)系或需要快速和輕松地訪問特定對象该押,Core Data可能是不錯的選擇疗杉。

二、Core Data托管對象

1.托管對象

托管對象是NSManagedObject實例蚕礼,應(yīng)用主要與之交互烟具。可將托管對象視為字典奠蹬,包含一組已知的鍵和對象類型(如字符串或數(shù)組)朝聋。可以像下面這樣訪問托管對象的特性

NSString *movieName = [myMOview valueForKey:@"movieName"];

要更新特性,可使用setValue:forKey.

[myMovie setValue:@"Casablanca" forkey:@"movieName"];

可將托管對象定義為NSManagedObject的子類,這樣就可以像訪問屬性那樣訪問特性.

[myMovie setMovieName:@"Casablanca"];

NSString *moviewName = [myMovie movieName];

NSManagedObject子類可包含自定義方法.例如,在存儲電影信息的托管對象中,可添加一個自定義方法,用于跟蹤電影被欣賞了多少次.這個方法可能將電影的"欣賞次數(shù)"特性加1,并將"最后欣賞日期"設(shè)置為當天.

可在托管對象之間建立關(guān)系.例如,在跟蹤電影收藏的應(yīng)用中,跟蹤電影是否借給了朋友可能很有用.為此,可在應(yīng)用中創(chuàng)建Movie和Friend對象,并在它們之間建立關(guān)系.

對象之間的關(guān)系可以是一對一的.如果電影應(yīng)用將每一部電影的海報圖像都存儲在一個獨立的對象中,就可以在電影和海報圖像之間建立一對一的關(guān)系.

[myMovie setValue:posterImageObject forKey:@"posterImage"];

NSManagedObject *movie = [posterImageObject valueForKey"@"relatedMovie"];

關(guān)系也可以是一對多的.例如,一部電影不能同時借給多位朋友,但一位朋友可同時借用多部電影.

[myMovie setValue:myFriend forKey:@"lentToFriend"];

[myOtherMovie setValue:myFriend forKey"@"lentToFriend"];

NSSet *borrowedMovies = [myFriend valueForKey"@"borrowedMovies"];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末囤躁,一起剝皮案震驚了整個濱河市冀痕,隨后出現(xiàn)的幾起案子荔睹,更是在濱河造成了極大的恐慌,老刑警劉巖言蛇,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件僻他,死亡現(xiàn)場離奇詭異,居然都是意外死亡腊尚,警方通過查閱死者的電腦和手機吨拗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跟伏,“玉大人,你說我怎么就攤上這事翩瓜∈馨猓” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵兔跌,是天一觀的道長勘高。 經(jīng)常有香客問我,道長坟桅,這世上最難降的妖魔是什么华望? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮仅乓,結(jié)果婚禮上赖舟,老公的妹妹穿的比我還像新娘。我一直安慰自己夸楣,他們只是感情好宾抓,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著豫喧,像睡著了一般石洗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上紧显,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天讲衫,我揣著相機與錄音,去河邊找鬼孵班。 笑死涉兽,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的篙程。 我是一名探鬼主播花椭,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼房午!你這毒婦竟也來了矿辽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袋倔,沒想到半個月后雕蔽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡宾娜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年批狐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片前塔。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡嚣艇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出华弓,到底是詐尸還是另有隱情食零,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布寂屏,位于F島的核電站贰谣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏迁霎。R本人自食惡果不足惜吱抚,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望考廉。 院中可真熱鬧秘豹,春花似錦、人聲如沸昌粤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婚苹。三九已至岸更,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膊升,已是汗流浹背怎炊。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留廓译,地道東北人评肆。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像非区,于是被迫代替她去往敵國和親瓜挽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容