LoginSignup
197
198

More than 5 years have passed since last update.

iOSでアプリを削除してもデータを保持する方法

Last updated at Posted at 2013-12-11

概要

Keychain Servicesというとパスワードを保存する仕組みだと思われる方が多いと思います。
実際にそうなのですが、Keychainに保存した情報はNSUserDefaultsと違ってアプリを削除した後もデータを保持することができるという別のメリットがあります。
(Keychainの事を知らない人はこちらにとても分かりやすい説明が書いてあります)

そういった要件があるときにNSUserDefaultsのように簡単にデータを保存するライブラリがあったらいいなと思ったら既に作ってる人がいました。
LUKeychainAccessという名前のライブラリです。

Keychain ServicesNSUserDefaultsと違い、気軽に使うにはちょっと面倒な仕組みなのでとてもありがたいです。

追記:

iOSのバックアップを暗号化していない場合はキーチェーンの内容はバックアップされません。
機種変更の時などに初期化されてしまう環境もありますので、その辺も踏まえて利用しましょう。

takayamaさん、ご指摘いただきありがとうございます。

使い方

Security.frameworkをターゲットに追加してください。
次にソースをダウンロードしましょう。

ダウンロードしたソースコード内のLUKeychainAccessディレクトリごとプロジェクトにコピーして、
LUKeychainAccess.hファイルをインポートしましょう。

使い方もとてもシンプルでNSUserDefaultsとほぼ同様の使い方でデータを扱えます。

データの保存

// integer
[[LUKeychainAccess standardKeychainAccess] setInteger:1 forKey:@"integerKey"];
// float
[[LUKeychainAccess standardKeychainAccess] setFloat:1.0 forKey:@"floatKey"];
// double
[[LUKeychainAccess standardKeychainAccess] setDouble:1.0 forKey:@"doubleKey"];
// BOOL
[[LUKeychainAccess standardKeychainAccess] setBool:YES forKey:@"boolKey"];
// NSString
[[LUKeychainAccess standardKeychainAccess] setString:@"string" forKey:@"stringKey"];
// NSObject
[[LUKeychainAccess standardKeychainAccess] setObject:@"object" forKey:@"objectKey"];

セットした値はすぐに保存されます。

保存したデータの読み込み

// integer
NSInteger integerValue = [[LUKeychainAccess standardKeychainAccess] integerForKey:@"integerKey"];
// float
float floatValue = [[LUKeychainAccess standardKeychainAccess] floatForKey:@"floatKey"];
// double
float doubleValue = [[LUKeychainAccess standardKeychainAccess] doubleForKey:@"doubleKey"];
// BOOL
BOOL boolValue = [[LUKeychainAccess standardKeychainAccess] boolForKey:@"boolKey"];
// NSString
NSString *stringValue = [[LUKeychainAccess standardKeychainAccess] stringForKey:@"stringKey"];
// NSObject
NSString *objectValue = [[LUKeychainAccess standardKeychainAccess] objectForKey:@"objectKey"];

と正にNSUserDefaultsと同じ使い勝手でした。

197
198
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
197
198