TwistedFate 初級資料持久化

2021-07-08 16:49:33 字數 2927 閱讀 7950

沙盒機制

開啟沙盒的各個資料夾路徑

- (void)path
簡單物件的寫入
- (void)writefile;

[dic writetofile:dicpath atomically:yes];

// 寫入data

nsstring *datastr = @"且隨疾風前行";

nsdata *data = [datastr datausingencoding:nsutf8stringencoding];

[data writetofile:datapath atomically:yes];

// data檔案一般是 儲存 的

// uiimagepngrepresentation 把轉化成nsdata型別

nsdata *imagedata = uiimagepngrepresentation([uiimage imagenamed:@"1.png"]);

// 拼接路徑

[imagedata writetofile:imagepath atomically:yes];

//nslog(@"%@",imagepath);

}

獲取資料
// 讀取資料

- (void)readfile

建立資料夾
//  建立資料夾

- (void)createfile

移動資料夾
//  移動資料夾

- (void)movefile

拷貝資料夾
//  拷貝資料夾

- (void)copyfile

刪除資料夾
//  刪除資料夾

- (void)removefile

判斷資料夾是否存在
//  判斷資料夾是否存在

- (void)i***cutable

解決思路:複雜物件的寫入檔案,自己建立出來的類(例如 student類),寫入的核心思想 把複雜物件 轉化成簡單物件,一般轉化成nsdata物件 進行寫入

重寫歸檔方法

//  重寫歸檔方法

- (void)encodewithcoder:(nscoder *)acoder

重寫反歸檔方法
//  重寫反歸檔方法

- (id)initwithcoder:(nscoder *)adecoder

return

self;

}

歸檔
//  建立student類

student *stu = [[student alloc] init];

stu.name = @"劍心";

stu.age = 12;

stu.imagedata = uiimagepngrepresentation([uiimage imagenamed:@"1.png"]);

// 建立乙個可變的data

nsmutabledata *data = [nsmutabledata

data];

// 建立歸檔物件

nskeyedarchiver *archiver = [[nskeyedarchiver alloc] initforwritingwithmutabledata:data];

// 將複雜物件通過歸檔物件轉化成data

[archiver encodeobject:stu forkey:@"student"];

[stu release];

// 結束歸檔

[archiver finishencoding];

> 實際上 通過 歸檔物件 把複雜物件 寫入data中,並且寫入的標識 就key

****** 歸檔與反歸檔 不是資料持久化 ******

只是把複雜物件按照編碼格式 轉化成data

真正的資料持久化 還是 寫入檔案

// 寫入檔案

nsstring *documentpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject];

// 拼接路徑

nslog(@"%@",path);

[data writetofile:path atomically:yes];

// 釋放歸檔物件

[archiver release];

反歸檔
//  反歸檔

// 從沙盒中讀取data資料

nsdata *datanew = [nsdata datawithcontentsoffile:path];

// 建立反歸檔物件(利用data建立)

nskeyedunarchiver *unarchiver = [[nskeyedunarchiver alloc] initforreadingwithdata:datanew];

// 利用反歸檔物件 反歸檔初出發在物件

student *stunew = [unarchiver decodeobjectforkey:@"student"];

// 呼叫完成 返回歸檔

[unarchiver finishdecoding];

uiimage *image = [uiimage imagewithdata:stunew.imagedata];

[unarchiver release];

// 如何把乙個陣列的 複雜物件 寫入到檔案中

// 遍歷這個陣列 把每乙個複雜物件轉化成簡單物件(nsdata)

// 然後再將data 儲存到乙個陣列中

// 最後直接把這個陣列寫入到檔案 進行持久化

}

TwistedFate 資料庫初級使用

使用步驟 1.引入libsqlite3.0框架 2.在資料庫操作類裡 引入 單例的初始化方法 sqlitemanager sharemanager 插入資料 void inserttablewithstudent student stu 刪除資料 void deletewithage nsinteg...

初級資料持久化

沙盒機制 列印沙盒的各個資料夾路徑 void path 簡單物件的寫入 系統的類例項出來的物件 叫簡單物件 例如 字串 陣列 字典 二進位制物件 nsdata 如果要寫入乙個陣列 或者 字典 等容器類物件 那麼這個容器當中 也要儲存是 簡單物件才能寫入 void writefile dic writ...

初級資料的持久化

本章部落格我主要是把ui後期初級資料持久化的一些基本使用總結了下,這裡主要分享了沙盒機制的概念,簡單物件不同情況下的寫入,複雜物件的寫入,以及data與二進位制 之間相互轉化的方法,希望可以幫到大家。一 沙盒機制 1.每個應用程式位於檔案系統的嚴格限制部分 2.每個應用程式只能在為該程式建立的檔案系...