リハビリエンジニア

エンジニアリングのリハビリ中

Swift - Dictionaryを保存する

サーバーからのレスポンスをキャッシュしたい時なんぞに、
こういったことが必要になることがあります。

NSDictionaryをNSDataに変換

NSDictionaryをplistに変換しても良かったのだけれど、
何故か私が渡すDictionaryでは、writeToFileがfalseを返すばかりで失敗するため、
いろんなところを参考にして、NSDataに変換して保存する方法をとった。
まあplistだと中身を見ることができてしまうので、バイナリに変換するのがいいんでないかなと思います。

NSKeyedArchiverをつかってアーカイブ・アンアーカイブ

NSKeyedArchiverをつかってNSDictionaryをバイナリに変換します。

// アーカイブ
let data = NSKeyedArchiver.archivedDataWithRootObject(dictionary)

// アンアーカイブ
let dictionary = NSKeyedUnarchiver.unarchiveObjectWithData(data)

NSFileManagerで任意のディレクトリに保存

あとは仕様にそった場所にNSFileManagerクラスで保存してあげればよい。