淺談iOS開發中的對象歸檔

來源:互聯網
上載者:User

標籤: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開發中的對象歸檔

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.