ゲームのアプリならハイスコアやパラメータ。
便利ツールのアプリなら個人設定内容や履歴などなど。。
まあ、それはそれとしてハイスコアの保存って、発想がふるいですね
Webでデータを持つ方法やDBを使う方法もありますが、
今回紹介するのはNSUserDefaultsを用いた保存です。
Androidで言うところのPreference機能です。
使い方もPreferenceとだいたい同じです。
■保存する関数
-(Boolean)Save_Date:(NSString *)sKey :(NSString *)sItem{
NSUserDefaults *oDefaults = [NSUserDefaults standardUserDefaults];
[oDefaults setObject:sItem forKey:sKey];
Boolean successful = [oDefaults synchronize];
if (successful) {
NSLog(@"%@", @"データ保存成功");
return true;
}
NSLog(@"%@", @"データ保存失敗");
return false;
}
キー(ユニークな文字列)を指定して、
そのキーに保存内容を渡して、保存します。
Dictionary感覚ですね。
[oDefaults setObject:sItem forKey:sKey];
setObjectの箇所は変数の型によってかわります。
intならsetInteger
boolならsetBool
boolならsetBool
となりますので、ご気を付けてください。
■保存内容を取得する関数
-(NSString *)Get_Date:(NSString *)sKey{
NSUserDefaults *oDefaults = [NSUserDefaults standardUserDefaults];
NSString *sDate = [oDefaults stringForKey:sKey];
if (sDate) {
return sDate;
}
NSLog(@"%@", @"データが存在しません。");
return @"";
}
の取得の仕方も保存とだいたい同じです。
NSString *sDate = [oDefaults stringForKey:sKey];
stringForKeyの箇所は変数の型によってかわります。
intならintegerforKey
boolならboolforKey
となりますので、ご気を付けてください。
boolならboolforKey
となりますので、ご気を付けてください。
■保存内容を消す関数
-(Boolean)Delete_Date:(NSString *)sKey{
NSUserDefaults *oDefaults = [NSUserDefaults standardUserDefaults];
[oDefaults removeObjectForKey:sKey];
Boolean successful = [oDefaults synchronize];
if (successful) {
NSLog(@"%@", @"保存データは消えました。笑");
return true;
}
NSLog(@"%@", @"保存データ削除失敗!!");
return false;
}
保存内容を消す関数とか個人的には使う事はないのですが、
一応用意されているので。。。
少しでもキャッシュデータを軽くするために
使うのでしょうか??
端末に保存する機能ですが、
携帯のデータはユーザー操作で簡単に
データが消えてしまうので、
大事な大事なデータは端末で管理するよりも
Webで管理して、ユーザーが復旧できる
措置を作る用にしましょうね。
とかいっても、個人で作るアプリに
そんなクオリティーを求められても
困りますが。。。。
0 件のコメント:
コメントを投稿