1、nsdata
1.介紹
使用archiverootobject:tofile:方法可以將乙個物件直接寫入到乙個檔案中,但有時候可能想將多個物件寫入到同乙個檔案中,那麼就要使用nsdata
來進行歸檔物件
nsdata2.範例可以為一些資料提供臨時儲存空間,以便隨後寫入檔案,或者存放從磁碟讀取的檔案內容。可以使用
[
nsmutabledata
data]
建立可變資料空間
1. 歸檔(編碼)
// 新建一塊可變資料區
nsmutabledata *data = [nsmutabledata data];
// 將資料區連線到乙個nskeyedarchiver物件
nskeyedarchiver *archiver = [[[nskeyedarchiver alloc] initforwritingwithmutabledata:data] autorelease];
// 開始存檔物件,存檔的資料都會儲存到nsmutabledata中
[archiver encodeobject:person1 forkey:@"person1"];
[archiver encodeobject:person2 forkey:@"person2"];
// 存檔完畢(一定要呼叫這個方法)
[archiver finishencoding];
// 將存檔的資料寫入檔案
[data writetofile:path atomically:yes];
2. 恢復(解碼)
// 從檔案中讀取資料
nsdata *data = [nsdata datawithcontentsoffile:path];
// 根據資料,解析成乙個nskeyedunarchiver物件
nskeyedunarchiver *unarchiver = [[nskeyedunarchiver alloc] initforreadingwithdata:data];
person *person1 = [unarchiver decodeobjectforkey:@"person1"];
person *person2 = [unarchiver decodeobjectforkey:@"person2"];
// 恢復完畢
[unarchiver finishdecoding];
3.深賦值
// 臨時儲存person1的資料
nsdata *data = [nskeyedarchiver archiveddatawithrootobject:person1];
// 解析data,生成乙個新的person物件
student *person2 = [nskeyedunarchiver unarchiveobjectwithdata:data];
// 分別列印記憶體位址
IOS 物件歸檔
ios提供的資料持久化方式有 sqlite coredata 屬性列表 nsuserdefault 物件歸檔。這裡來簡單介紹下物件歸檔 物件歸檔是將物件歸檔以檔案的形式儲存到磁碟中 也稱為序列化,持久化 使用的時候讀取該檔案的儲存路徑讀取檔案的內容 也稱為接檔,反序列化 物件歸檔的檔案是保密的,在磁...
iOS開發之APP USER物件儲存歸檔
void forgetpsdaction completion null 這個方法啊,頁面保證釋放 頁面迴圈跳轉,若有頁面不進行釋放的話則會導致迴圈引用 2.就忘記密碼和註冊頁面來看也就是相互之間可以跳轉到登入頁面去。3.一旦登入成功,這時候後台伺服器回返回乙個使用者的所有資訊的json或者其他型別...
iOS開發歸檔儲存
ios做儲存的時候,陣列裡面放nsstring nsnumber nsdata等可以直接寫入檔案,但是我們自定義的類物件放入陣列中就不能直接寫入檔案。原因是上述的類實現了協議,該協議有兩個方法 對物件進行歸檔的時候其實就是訪問物件的屬性 進行編碼的時候會呼叫,做儲存操作的時候會呼叫這個方法 void...