首頁技術文章正文

iOS培訓之淺談iOS開發(fā)中的對象歸檔

更新時間:2017-04-13 來源:黑馬程序員iOS學院 瀏覽量:

 iOS提供的數(shù)據(jù)持久化方式有:SQLiteCoreData屬性列表、NSUserDefault對象歸檔。
        這里來簡單介紹下在傳智IOS培訓過程中,iOS開發(fā)中的對象歸檔:
        對象歸檔是將對象歸檔以文件的形式保存到磁盤中(也稱為序列化,持久化)使用的時候讀取該文件的保存路徑讀取文件的內(nèi)容(也稱為接檔,反序列化)
        對象歸檔的文件是保密的磁盤上無法查看文件中的內(nèi)容,而屬性列表是明文的可以查看)
        對象歸檔有兩種方式:1、對foundat中對象進行歸檔     2、自定義對象歸檔
        1、簡單對象歸檔
       使用兩個類:NSKeyedA richivNSKeyedUnarchiver
       NSStr*homeDirectori=NSHomeDirectori;  //獲取根目錄
       NSStringhomePath=[homeDirectoristringByA ppendingPathComponent自定義文件名,如test.archive
       NSA rrai*arrai
       Boolflag=[NSKeyedA richivarchiveRootObject:arraitoFile:homePath];
      ifflag{
      NSLo歸檔成功!";
      }
      讀取歸檔文件的內(nèi)容:
        NSA rrai*arrai=[NSKeyedUnarchivunarchiveObjectWithFile:homePath];
        NSLo,arrai;
        這樣就簡單了實現(xiàn)了將NSA rrai對象的歸檔和解檔。
       但是這種歸檔方式有個缺點,就是一個文件只能保存一個對象,如果有多個對象要保存的話那豈不是有n多個文件,這樣不是很適合的所以有了下面這種歸檔方式。
        2、自定義內(nèi)容歸檔
       使用NSData實例作為歸檔的存儲數(shù)據(jù)
       添加歸檔的內(nèi)容---使用鍵值對
       完成歸檔
       解歸檔:
       從磁盤讀取文件,生成NSData實例
       根據(jù)NSData實例和初始化解歸檔實例
       解歸檔,根據(jù)kei訪問value
       NSStr*homeDirectori=NSHomeDirectori;//獲取根目錄
       NSStringhomePath=[homeDirectoristringByA ppendingPathComponent自定義文件名,如test.archive
       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開發(fā)中,除了歸檔問題,往往不注意的是安全問題。別以為,就Android會爆漏洞,早在WireLurker出現(xiàn)的時候,iOS的安全神話就已經(jīng)不復存在了。而目前在國內(nèi),iOS安全加密保護這塊還是空白。但是,IOS培訓學院想告訴廣大iOS開發(fā)者也不必擔心,因為就在前不久,已經(jīng)有平臺推出了iOS應用加密服務,針對iOS的技術原理和破解原理,分別從本地數(shù)據(jù)、方法體/方法名、URL編碼、程序結構、網(wǎng)絡傳輸數(shù)據(jù)等幾個方面對iOS應用進行全方位的保護,并可以根據(jù)iOS應用用戶的需求提供定制解決方案,從而實現(xiàn)iOS防破解保護。

本文版權歸黑馬程序員ios培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員IOS培訓學院
首發(fā):http://409rqu1.cn/special/hmiospro/
分享到:
在線咨詢 我要報名
和我們在線交談!