偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳解Objective-C文件加載與保存

移動(dòng)開(kāi)發(fā) iOS
Objective-C文件加載與保存是本文要介紹的內(nèi)容,Cocoa提供了Core Data,能夠在后臺(tái)處理所有文件內(nèi)容,但是本章討論的是Cocoa提供的兩個(gè)通用的文件處理類(lèi):屬性列表和對(duì)象編碼。

Objective-C文件加載與保存是本文要介紹的內(nèi)容,Cocoa提供了Core Data,能夠在后臺(tái)處理所有文件內(nèi)容,但是本章討論的是Cocoa提供的兩個(gè)通用的文件處理類(lèi):屬性列表和對(duì)象編碼。

屬性列表

有一類(lèi)名為屬性列表的對(duì)象,常簡(jiǎn)寫(xiě)為plist

屬性列表類(lèi)包括:NSArray, NSDictionary, NSString, NSNumber, NSDate,NSData以及他們的變體

NSDate

NSDate是用于處理時(shí)間和日期的基礎(chǔ)類(lèi)

[NSDate date]獲得當(dāng)前日期

dateWithTimeIntervalSinceNow,接受一個(gè)NSTimeInterval參數(shù),通過(guò)制定時(shí)間偏移量獲得新時(shí)間。正值表示將來(lái),負(fù)值表示過(guò)去

NSData

NSData包裝了大量字節(jié),可以獲得數(shù)據(jù)的長(zhǎng)度和指向字節(jié)起始位置的指針

用dataWithBytes:length:方法獲得

length方法給出字節(jié)數(shù)

bytes方法給出指向字節(jié)起始位置的指針

NSData不能改變,創(chuàng)建后就只能使用而不能改變,NSMutableData可以改變

寫(xiě)入和讀取屬性列表

如何使用屬性列表和文件關(guān)聯(lián)呢:

集合屬性列表類(lèi)具有:writeToFile:atomically:方法,用于將屬性列表寫(xiě)入文件

NSString、NSData也具有:writeToFile:atomically:方法,但只寫(xiě)入字符串或數(shù)據(jù)塊

注意:atomically參數(shù)是BOOL型,用于說(shuō)明保存過(guò)程中是否使用臨時(shí)文件,會(huì)占用雙倍空間,但除非文件非常大,否則應(yīng)該使用YES,以防破壞原始文件

通過(guò)arrayWithContentsofFile:方法可以將文件內(nèi)容讀入到數(shù)組中

writeToFile:atomically:的缺點(diǎn)是,不會(huì)返回錯(cuò)誤信息,如果不能加載,只能從方法中得到nil指針

編碼對(duì)象

Cocoa具備一種機(jī)制,將對(duì)象轉(zhuǎn)換為某種格式保存到磁盤(pán)中,當(dāng)讀取這些數(shù)據(jù)塊到內(nèi)存后,還能基于保存的對(duì)象創(chuàng)建新的對(duì)象。這個(gè)過(guò)程稱(chēng)為編碼和解碼,或稱(chēng)為序列化和反序列化

例如:使用Interface Buider時(shí),從庫(kù)中拖動(dòng)對(duì)象,這些對(duì)象被保存到nib文件中,換言之,對(duì)象被序列化并保存到磁盤(pán)中。程序運(yùn)行時(shí),會(huì)將nib文件加載到內(nèi)存中,串行化對(duì)象

通過(guò)實(shí)現(xiàn)NSCoding協(xié)議,可以使自己的對(duì)象實(shí)現(xiàn)相同的功能

  1. @protocal NSCoding  
  2. -(void) encodeWithCoder:(NSCoder *) aCoder;  
  3. -(id) initWithCoder:(NSCoder *) aDecoder; 

NSCoder是一個(gè)抽象類(lèi),我們只用它的子類(lèi)NSKeyedArchiver和NSKeyedUnarchiver

  1. encodeObject:forkey方法編碼,encodeXXX:forkey:  
  2. decodeObject:forkey方法解碼,decodeXXX:forkey; 

注意:initWithCoder需要調(diào)用父類(lèi)init,如果父類(lèi)采用NSCoding協(xié)議,則調(diào)用initWithCoder,否則調(diào)用init即可。

小結(jié):詳解Objective-C文件加載與保存的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-04 13:38:01

Objective-C C++

2011-08-17 10:58:59

Objective-C構(gòu)造函數(shù)

2011-07-29 16:16:30

Objective-c block

2011-07-18 16:36:51

Objective-C XCode

2015-10-08 10:01:10

Objective-CLayout

2014-04-01 10:50:42

iOS開(kāi)發(fā)runtimeObjective-C

2011-08-17 10:29:39

Objective-C預(yù)處理

2011-07-27 16:55:12

Objective-c 閉包

2011-08-17 11:05:22

Objective-C方法

2014-04-28 09:56:56

Objective-CiOS命名空間

2011-08-01 17:11:43

Objective-C 函數(shù)

2011-08-15 14:32:42

Objective-C委托協(xié)議

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用鍵

2011-07-08 18:44:09

Objective-C Self Super

2011-07-29 15:47:21

iPhone開(kāi)發(fā) Objective- C

2011-08-10 18:07:29

Objective-C反射

2011-08-04 10:04:17

Objective-C 分類(lèi) 協(xié)議

2011-08-04 18:14:42

Objective-C 消息

2011-08-16 13:34:23

Objective-C歸檔

2011-07-27 16:36:03

iphone Objective- 靜態(tài)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)