總結(jié)回顧:麥子學(xué)院之IOS開發(fā)必不可少-數(shù)據(jù)存儲(chǔ)

不得不說俩滥,這個(gè)系列的視頻錄制的一點(diǎn)都不友善嘉蕾,我嘗試看了好多次,也沒有看明白霜旧,模模糊糊的感覺一點(diǎn)也不好错忱。不知道是老師的問題還是課程設(shè)置的問題」揖荩總是不知所以然的狀態(tài)以清,我看到這里的時(shí)候都差點(diǎn)要放棄學(xué)習(xí)iOS開發(fā)了,還好崎逃,放棄一個(gè)周之后又重新拾起來了掷倔。不過我用其他學(xué)校的數(shù)據(jù)存儲(chǔ)視頻代替了麥子學(xué)院數(shù)據(jù)存儲(chǔ)視頻了。沒辦法个绍,麥子學(xué)院的數(shù)據(jù)存儲(chǔ)有點(diǎn)不適合我勒葱。浪汪。

A.七種方式??實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)

在IOS中,數(shù)據(jù)存儲(chǔ)的方式有以下七個(gè)方法:

1.NSUerDefaults

2. Setting Bundle

3.通用文件存儲(chǔ)

4.對(duì)象歸檔

5.SQLite

6.Core Data

7.iCloud

B.五種數(shù)據(jù)存儲(chǔ)的基本操作

數(shù)據(jù)存儲(chǔ)的基本操作凛虽,也就說不管你使用什么方法死遭,這個(gè)方法都需要能滿足下面這5個(gè)基本操作:

1.保存

2.更新

3.刪除

4.加載

5.查詢

C.應(yīng)用程序沙盒

1.了解應(yīng)用程序沙盒。

開始學(xué)習(xí)數(shù)據(jù)存儲(chǔ)方式之前凯旋,先需要了解應(yīng)用程序沙盒呀潭。

因?yàn)镮OS對(duì)數(shù)據(jù)存儲(chǔ)有一定的要求,而且會(huì)進(jìn)行權(quán)限檢測(cè)至非,APP只能在應(yīng)用程序沙盒中讀取文件蜗侈,這要求我們?cè)诰幊虝r(shí),需要的文件都要保存在沙盒內(nèi)部睡蟋。

2.應(yīng)用程序沙盒里有四個(gè)文件:

1)MyApp.app: 存放App Bundle和APP的可執(zhí)行代碼。

2)Documents:存放重要的用戶文檔和應(yīng)用數(shù)據(jù)文件枷颊。注意:A-1?NSUerDefaults中的首選項(xiàng)數(shù)據(jù)不在其中

3)Library:存放系統(tǒng)文件戳杀。

4)tmp:臨時(shí)的數(shù)據(jù)。不要存放重要的文件夭苗。

3.學(xué)習(xí)通過iphone模擬器的目錄來了解APP的C-2應(yīng)用程序沙盒的四個(gè)目錄信卡。

4.學(xué)習(xí)通過代碼來獲取文件目錄。

1)C語言的方法

var path = NSSearchPathForDirectoriesInDomains ( NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true ) //注意:這里最后寫true表示顯示完整路徑题造,false只顯示最后一個(gè)文件夾的名字

var documentsDirectory =path[0] as String?//注意:path[0]零表示的是D-2-2)?中的Documents

printlin(documentsDirectory)

2)專門給IOS準(zhǔn)備的方法

var fileManager = NSFileManager.defaultManager()

var documentDirectorWithManager = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)

println(documentDirectorWithManager)

D.NSUserDefaults

數(shù)據(jù)存儲(chǔ)的第一種方法傍菇,即A-1。NSUserDefaults往往用在設(shè)置中(當(dāng)然界赔,還需要和A-2組合使用才能實(shí)現(xiàn))丢习,當(dāng)我們開發(fā)的APP需要開發(fā)系統(tǒng)設(shè)置這個(gè)功能時(shí),可以采用這種存儲(chǔ)方式淮悼。

是單例咐低,整個(gè)程序中只有一個(gè)實(shí)例對(duì)象。

適合存儲(chǔ)輕量級(jí)的數(shù)據(jù)袜腥。

可以存儲(chǔ)的類型有限:

NSData

NSString(String)

NSNumber(Int,Double,Float)

NSDate(Array)

NSDictionary(Dictionary)

Bool

也是因?yàn)檫@些特性见擦,決定了NSUserDefaults的使用場(chǎng)景。

關(guān)鍵命令:

var userDefaults = NSUserDefaults.standardUserDefaults()

var text = dataInputTextField.text

userDefaults.setObject(text, forKey: "text1”) 數(shù)據(jù)存入格式set多種可選擇的格式羹令。set作為前綴

userDefaults.synchronize() 存入數(shù)據(jù)生效

var textget = userDefaults.stringForKey("text1”) ?讀取以前存入的數(shù)據(jù)鲤屡,可選擇多種格式。ForKey作為后綴福侈。

E.Setting Bundle

數(shù)據(jù)存儲(chǔ)的第二種方法酒来,即A-2。往往和A-1組合使用癌刽,完成APP的設(shè)置界面的功能開發(fā)役首。一般setting bundle和NSUserDefaults結(jié)合起來使用尝丐,才能完成設(shè)置這個(gè)功能的開發(fā)。這個(gè)設(shè)置是iPhone的設(shè)置按鈕衡奥,不是APP內(nèi)部的那個(gè)設(shè)置爹袁。

F.通用文件存儲(chǔ)

通用文件存儲(chǔ)可以用來存儲(chǔ)序列化對(duì)象(serialized object)。序列化對(duì)象(serialized object)是指可以倍轉(zhuǎn)換為字節(jié)以便于存儲(chǔ)到文件中或者通過網(wǎng)絡(luò)進(jìn)行傳輸?shù)膶?duì)象矮固。不過目前只能將某些對(duì)象放置到某些集合類中然后存儲(chǔ)到通用文件中去失息,不是所有的對(duì)象都可以存儲(chǔ)到通用文件當(dāng)中去的。

可以進(jìn)行對(duì)象序列化的類有:

· NSData

· NSString(String)

· NSNumber(Int, Double,Float)

· NSDate

· NSArray(Array)

· NSDictionary(Dictionary)

G.對(duì)象歸檔

對(duì)象歸檔(Archive):將對(duì)象轉(zhuǎn)換成可以寫入到文件中的格式档址,通常是以一種不可讀的方式進(jìn)行保存盹兢。

對(duì)象反歸檔(Unarchive):將數(shù)據(jù)從文件中讀出并自動(dòng)重建對(duì)象。

1.需要繼承NSObject守伸、NSCoding绎秒。同時(shí)需要寫一下代碼:

對(duì)象歸檔
對(duì)象歸檔后的讀取

H.SQLite


I.Core Data

蘋果公司提供的關(guān)系型數(shù)據(jù)庫。

Entities實(shí)體尼摹。命名的時(shí)候首字母要大寫见芹,首字母之前不能有符合數(shù)字。

Attributes 屬性

Relationships 關(guān)系:一對(duì)一 to one蠢涝,一對(duì)多to many玄呛,多對(duì)一,多對(duì)多

Fetched Properties 提取屬性(一般不常用)

control拖拽可以建立關(guān)系

J.iCloud


對(duì)此專題視頻課程設(shè)置的疑問:

1.為什么要學(xué)習(xí)這兩個(gè)個(gè)代碼和二?有什么作用嗎徘铝?在什么情況下會(huì)使用這個(gè)方法?如果告知原因惯吕,對(duì)理解掌握這個(gè)方法更有幫助的惕它。

2.如果這兩個(gè)代碼的作用是通過代碼來找到Documents文件夾,那么這個(gè)文件夾是應(yīng)用程序沙盒中的Documents文件夾嗎混埠?

那應(yīng)用程序沙盒中其他的三個(gè)文件夾(MyApp.app;Library,tmp)如何獲取呢怠缸?為什么不講呢?是因?yàn)椴恢匾獑幔?/p>

3.我嘗試著把var documentsDirectory =path[0] as String? 中的數(shù)字零改成其他數(shù)字钳宪,但是都說是超出數(shù)組范圍了揭北,那么這個(gè)數(shù)組只有零一個(gè)下標(biāo)嗎?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吏颖,一起剝皮案震驚了整個(gè)濱河市搔体,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌半醉,老刑警劉巖疚俱,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異缩多,居然都是意外死亡呆奕,警方通過查閱死者的電腦和手機(jī)养晋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梁钾,“玉大人绳泉,你說我怎么就攤上這事∧沸海” “怎么了零酪?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拇勃。 經(jīng)常有香客問我四苇,道長(zhǎng),這世上最難降的妖魔是什么方咆? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任月腋,我火速辦了婚禮,結(jié)果婚禮上瓣赂,老公的妹妹穿的比我還像新娘罗售。我一直安慰自己,他們只是感情好钩述,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著穆碎,像睡著了一般牙勘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上所禀,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天方面,我揣著相機(jī)與錄音,去河邊找鬼色徘。 笑死恭金,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的褂策。 我是一名探鬼主播横腿,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼斤寂!你這毒婦竟也來了耿焊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤遍搞,失蹤者是張志新(化名)和其女友劉穎罗侯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溪猿,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钩杰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年纫塌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讲弄。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡措左,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垂睬,到底是詐尸還是另有隱情媳荒,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布驹饺,位于F島的核電站钳枕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赏壹。R本人自食惡果不足惜鱼炒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蝌借。 院中可真熱鬧昔瞧,春花似錦、人聲如沸菩佑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稍坯。三九已至酬荞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞧哟,已是汗流浹背混巧。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勤揩,地道東北人咧党。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像陨亡,于是被迫代替她去往敵國(guó)和親傍衡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 1负蠕、 沙盒概念基本介紹 iOS 應(yīng)用程序只能在該 app 的文件系統(tǒng)中讀取聪舒。這個(gè)默認(rèn)的 app 文件系統(tǒng)就是我們說...
    Laughingg閱讀 2,642評(píng)論 2 10
  • 1.1 談一談GCD和NSOperation的區(qū)別? 首先二者都是多線程相關(guān)的概念虐急,當(dāng)然在使用中也是根據(jù)不同情境進(jìn)...
    John_LS閱讀 1,309評(píng)論 0 12
  • 前言 iOS本地緩存數(shù)據(jù)方式有五種: 1.直接寫文件方式*.plist:可以存儲(chǔ)的對(duì)象有NSString箱残、NSAr...
    隨心吧閱讀 1,979評(píng)論 0 18
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,130評(píng)論 30 470
  • ,經(jīng)常說在 block 里面很容易導(dǎo)致循環(huán)引用(retain cycle),可是為什么會(huì)導(dǎo)致循環(huán)引用,卻不是特別理...
    yww閱讀 1,227評(píng)論 0 2