當前位置:編程學習大全網 - 網站源碼 - 如何進行自定義對象的歸檔,請簡要說明

如何進行自定義對象的歸檔,請簡要說明

然,復雜數據例如UIImage,無法直接歸檔。但我們有壹種變通的做法,先將UIImage對象轉換為NSData,再對NSData進行歸檔。1

註1:準確地說,這依賴於iOS的版本。在iOS4中,UIImage未實現NSCoding協議,在iOS5中,UIImage實現了NSCoding協議。

對於自定義的類型,我們也可以參考這壹做法,即先將將自定義類型轉換為NSData,再對NSData進行歸檔。

問題在於,NSKeyedArchiver在歸檔壹個自定義對象時,怎麽知道如何將壹個自定義對象編碼為壹個NSData?而且,當我們從文件中反歸檔時,NSKeyedUnarchiver怎麽知道將NSData轉變為壹個自定義對象?

這就是NSCoding 協議需要解決的問題。實際上,NSCoding協議規定的兩個方法,分別用於解決這兩個問題。

當NSKeyedArchiver 在歸檔壹個對象時,將調用對象的encodeWithCoder:方法,用於將對象轉換為NSData(或NSString等其他5種類型);而NSKeyedUnarchiver在反歸檔壹個對象時,則調用對象的initWithCoder:方法,用於將NSData(或NSString等其他5種類

  • 上一篇:Php沒有安裝mysql。是不是無法打開mysql擴展?
  • 下一篇:網景瀏覽器的介紹
  • copyright 2024編程學習大全網