1、偏好設(shè)置(NSUserDefaults)
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),隰縣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:隰縣等地區(qū)。隰縣做網(wǎng)站價(jià)格咨詢:18980820575
2、plist文件存儲(chǔ)
3、歸檔
4、SQLite
5、Core Data
我們首先需要了解下沙盒(Sandbox)
Application :存放程序源文件,上架前經(jīng)過數(shù)字簽名,上架后不可修改
Documents : 保存應(yīng)?運(yùn)行時(shí)生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時(shí)會(huì)備份該目錄。例如,游戲應(yīng)用可將游戲存檔保存在該目錄
tmp : 保存應(yīng)?運(yùn)行時(shí)所需的臨時(shí)數(shù)據(jù),使?完畢后再將相應(yīng)的文件從該目錄刪除。應(yīng)用 沒有運(yùn)行時(shí),系統(tǒng)也可能會(huì)清除該目錄下的文件。iTunes同步設(shè)備時(shí)不會(huì)備份該目錄。
Library/Caches : 保存應(yīng)用運(yùn)行時(shí)?成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時(shí)不會(huì)備份 該目錄。?一般存儲(chǔ)體積大、不需要備份的非重要數(shù)據(jù),比如網(wǎng)絡(luò)數(shù)據(jù)緩存存儲(chǔ)到Caches下
Library/Preference : 保存應(yīng)用的所有偏好設(shè)置,如iOS的Settings(設(shè)置) 應(yīng)?會(huì)在該目錄中查找應(yīng)?的設(shè)置信息。iTunes同步設(shè)備時(shí)會(huì)備份該目錄
NSUserDefaults是個(gè)單例類,用于存儲(chǔ)少量數(shù)據(jù)。NSUserDefaults實(shí)際上對(duì)plist文件操作的封裝,更方便我們直接操作,一般用于存儲(chǔ)系統(tǒng)級(jí)別的偏好設(shè)置。比如我們經(jīng)常將登錄后的用戶的一些設(shè)置通過NSUserDefaults存儲(chǔ)到plist文件中。
NSUserDefaults使用起來非常簡單,例如將用戶的賬號(hào)和密碼存儲(chǔ)起來:
1、plist文件(屬性列表),通常用于儲(chǔ)存用戶設(shè)置,也可以用于存儲(chǔ)捆綁的信息;
2、preference(偏好設(shè)置),常用于保存少量數(shù)據(jù);
3、NSKeyedArchiver(歸檔),將內(nèi)存中的對(duì)象實(shí)例保存成binary到磁盤并且可以逆向這個(gè)過程用來保存用戶操作狀態(tài)等;
4、SQLite 3,使用數(shù)據(jù)庫進(jìn)行存儲(chǔ);
5、CoreData,它提供了對(duì)象-關(guān)系映射(ORM)的功能,即能夠?qū)C對(duì)象轉(zhuǎn)化成數(shù)據(jù),保存在SQLite數(shù)據(jù)庫文件中,也能夠?qū)⒈4嬖跀?shù)據(jù)庫中的數(shù)據(jù)還原成OC對(duì)象。
對(duì)于數(shù)據(jù)的持久化存儲(chǔ),ios中一般提供了4種不同的機(jī)制。
1.屬性列表
2.對(duì)象歸檔
3.數(shù)據(jù)庫存儲(chǔ)(SQLite3)
4.蘋果公司提供的持久性工具Core
Data。
其實(shí)儲(chǔ)存的形式無非就這么幾種,而我們還必須要關(guān)心的是,這些文件會(huì)被放置在那個(gè)文件下,然后如何讀取。
也就是說:IOS上數(shù)據(jù)存儲(chǔ),我們要了解的兩點(diǎn),數(shù)據(jù)存儲(chǔ)格式(也就是存儲(chǔ)機(jī)制),數(shù)據(jù)存儲(chǔ)位置。
1》文件如何存儲(chǔ)(如上面4點(diǎn))
2》文件存儲(chǔ)在哪里。
對(duì)于數(shù)據(jù)的操作,其實(shí)我們關(guān)心的是操作的速率。
就好比在Adnroid中偏好存儲(chǔ),數(shù)據(jù)庫存儲(chǔ),io存儲(chǔ)一樣。
1.plist文件(屬性列表)
2.preference(偏好設(shè)置)
3.NSKeyedArchiver(歸檔)
4.SQLite 3
5.CoreData
偏好設(shè)置是專門用來保存應(yīng)用程序的配置信息的,一般不要在偏好設(shè)置中保存其他數(shù)據(jù)。
如果沒有調(diào)用synchronize方法,系統(tǒng)會(huì)根據(jù)I/O情況不定時(shí)刻地保存到文件中。所以如果需要立即寫入文件的就必須調(diào)用synchronize方法。
偏好設(shè)置會(huì)將所有數(shù)據(jù)保存到同一個(gè)文件中。即preference目錄下的一個(gè)以此應(yīng)用包名來命名的plist文件。
NSUserDefaults適合存儲(chǔ)輕量級(jí)的本地?cái)?shù)據(jù),如登陸界面的數(shù)據(jù),用戶名、密碼等用戶偏好設(shè)置類的數(shù)據(jù)。下次啟動(dòng)應(yīng)用的時(shí)候就可以直接從NSUserDefaults里面讀取上次運(yùn)行的數(shù)據(jù)。
如果使用自己建立的plist文件什么的,需要自己顯式創(chuàng)建文件,讀取文件,很麻煩,而如果用NSUserDefaults則不用管這些,就像讀字典一樣,直接讀取數(shù)據(jù)就可以了,同時(shí)NSUserDefaults有緩存機(jī)制,可以避免頻繁讀寫文件。
NSUserDefaults支持的數(shù)據(jù)格式有:NSNumber(BOOL、Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,NSData類型。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//添加preference
[defaults setObject:@"value1" forKey:@"key1"];
[defaults setObject:@1111 forKey:@"key2"];
[defaults synchronize];
//刪除preference
[defaults removeObjectForKey:@"key1"];
[defaults synchronize];
//修改preference
[defaults setObject:@"value2" forKey:@"key1"];
[defaults synchronize];
//刪除所有preference
NSString *appDomainStr = [[NSBundle mainBundle] bundleIdentifier];
[defaults removePersistentDomainForName:appDomainStr];
NSString *key1Value = [defaults objectForKey:@"key1"];
NSNumber *key2Value = [defaults objectForKey:@"key2"];
NSLog(@"偏好設(shè)置=%@=%@",key1Value,key2Value);
iOS數(shù)據(jù)持久化一般采用下面方式
1、NSUserDefaults
2、數(shù)據(jù)歸檔。
3、SQLite3
4、Core Data
5、文件
如果你的json數(shù)據(jù)量不大的話可以使用NSUserDefaults、文件存儲(chǔ)。數(shù)據(jù)量大就需要使用數(shù)據(jù)庫存儲(chǔ)。
網(wǎng)站名稱:ios開發(fā)數(shù)據(jù)持久化,ios開發(fā)數(shù)據(jù)持久化什么意思
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article14/dsdgpde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站策劃、企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)