標籤:ios 加密 對象 ios開發 應用
iOS提供的資料持久化方式有:SQLiteCoreData屬性列表、NSUserDefault對象歸檔。
這裡來簡單介紹下iOS開發中的對象歸檔:
對象歸檔是將對象歸檔以檔案的形式儲存到磁碟中(也稱為序列化,持久化)使用的時候讀取該檔案的儲存路徑讀取檔案的內容(也稱為接檔,還原序列化)
對象歸檔的檔案是保密的磁碟上無法查看檔案中的內容,而屬性列表是明文的可以查看)
對象歸檔有兩種方式:1、對foundat中對象進行歸檔 2、自訂對象歸檔
1、簡單對象歸檔
使用兩個類:NSKeyedA richivNSKeyedUnarchiver
NSStr*homeDirectori=NSHomeDirectori; //擷取根目錄
NSStringhomePath=[homeDirectoristringByA ppendingPathComponent:@"自訂檔案名稱,如test.archiver"];
NSA rrai*[email protected][@"abc",@"123",@12];
Boolflag=[NSKeyedA richivarchiveRootObject:arraitoFile:homePath];
ifflag{
[email protected]"歸檔成功!";
}
讀取歸檔檔案的內容:
NSA rrai*arrai=[NSKeyedUnarchivunarchiveObjectWithFile:homePath];
[email protected]"%@",arrai;
這樣就簡單了實現了將NSA rrai對象的歸檔和解檔。
但是這種歸檔方式有個缺點,就是一個檔案只能儲存一個對象,如果有多個對象要儲存的話那豈不是有n多個檔案,這樣不是很適合的所以有了下面這種歸檔方式。
2、自訂內容歸檔
歸檔:
使用NSData執行個體作為歸檔的儲存資料
添加歸檔的內容---使用鍵值對
完成歸檔
解歸檔:
從磁碟讀取檔案,產生NSData執行個體
根據NSData執行個體和初始化解歸檔執行個體
解歸檔,根據kei訪問value
NSStr*homeDirectori=NSHomeDirectori;//擷取根目錄
NSStringhomePath=[homeDirectoristringByA ppendingPathComponent:@"自訂檔案名稱,如test.archiver"];
NSMutableData*data=[[NSMutableDataalloc]init];
NSKeyedA rchiv*archiv=[[NSKeyedA rchivalloc]initForWritingWithMutableData:data];
[archivencodeFloat:50forKey:@"age"];
[archivencodeObject:@"jack"forKey:@"name"];
[archivfinishEncoding]; //結束添加對象到data中
[archivrelease];
[datawriteToFile:homePath atomically:YES];//將data寫到檔案中儲存在磁碟上
NData*content=[NSDatadataWithConenteOfFile:homePath];
NSKeyedUnarchiv*unarchiv=[[NSKeyedUnarchivalloc]initForReadingWithData:content];
floatag=[unarchivdecodeFloatForKey:@"age"];
NSStr*name=[unarchivdecodeObjectForKey:@"name"];
在iOS開發中,除了歸檔問題,往往不注意的是安全問題。別以為,就Android會爆漏洞,早在WireLurker出現的時候,iOS的安全神話就已經不複存在了。而目前在國內,iOS安全加密保護這塊還是空白。但是,廣大iOS開發人員也不必擔心,因為就在前不久,已經有平台推出了iOS應用Data Encryption Service,針對iOS的技術原理和破解原理,分別從本機資料、方法體/方法名、URL編碼、程式結構、網路傳輸資料等幾個方面對iOS應用進行全方位的保護,並可以根據iOS應用使用者的需求提供定製解決方案,從而實現iOS防破解保護。iOS應用加密http://www.ijiami.cn/ios
淺談iOS開發中的對象歸檔