日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php nsdata,iOS开发之数据存储之NSData

發(fā)布時(shí)間:2023/12/10 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php nsdata,iOS开发之数据存储之NSData 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、概述

使用archiveRootObject:toFile:方法可以將一個(gè)對(duì)象直接寫(xiě)入到一個(gè)文件中,但有時(shí)候可能想將多個(gè)對(duì)象寫(xiě)入到同一個(gè)文件中,那么就要使用NSData來(lái)進(jìn)行歸檔對(duì)象。

NSData可以為一些數(shù)據(jù)提供臨時(shí)存儲(chǔ)空間,以便隨后寫(xiě)入文件,或者存放從磁盤(pán)讀取的文件內(nèi)容。可以使用[NSMutableData data]創(chuàng)建可變數(shù)據(jù)空間。

2、歸檔2個(gè)Person對(duì)象到同一文件中

歸檔(編碼):

// 新建一塊可變數(shù)據(jù)區(qū)

NSMutableData *data = [NSMutableData data];

// 將數(shù)據(jù)區(qū)連接到一個(gè)NSKeyedArchiver對(duì)象

NSKeyedArchiver *archiver = [[[NSKeyedArchiver alloc] initForWritingWithMutableData:data] autorelease];

// 開(kāi)始存檔對(duì)象,存檔的數(shù)據(jù)都會(huì)存儲(chǔ)到NSMutableData中

[archiver encodeObject:person1 forKey:@"person1"];

[archiver encodeObject:person2 forKey:@"person2"];

// 存檔完畢(一定要調(diào)用這個(gè)方法)

[archiver finishEncoding];

// 將存檔的數(shù)據(jù)寫(xiě)入文件

[data writeToFile:path atomically:YES];

3、從同一文件中恢復(fù)2個(gè)Person對(duì)象

恢復(fù)(解碼):

// 從文件中讀取數(shù)據(jù)

NSData *data = [NSData dataWithContentsOfFile:path];

// 根據(jù)數(shù)據(jù),解析成一個(gè)NSKeyedUnarchiver對(duì)象

NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];

Person *person1 = [unarchiver decodeObjectForKey:@"person1"];

Person *person2 = [unarchiver decodeObjectForKey:@"person2"];

// 恢復(fù)完畢

[unarchiver finishDecoding];

4、利用歸檔實(shí)現(xiàn)深復(fù)制

比如對(duì)一個(gè)Person對(duì)象進(jìn)行深復(fù)制:

// 臨時(shí)存儲(chǔ)person1的數(shù)據(jù)

NSData *data =

[NSKeyedArchiver archivedDataWithRootObject:person1];

// 解析data,生成一個(gè)新的Person對(duì)象

Student *person2 =

[NSKeyedUnarchiver unarchiveObjectWithData:data];

// 分別打印內(nèi)存地址

NSLog(@"person1:0x%x", person1); // person1:0x7177a60

NSLog(@"person2:0x%x", person2); // person2:0x7177cf0

總結(jié)

以上是生活随笔為你收集整理的php nsdata,iOS开发之数据存储之NSData的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。