2010年4月25日日曜日

iPhoneでアプリケーションごとの設定を保存する方法

ユーザーが設定する情報(例えばTwitterのアカウント情報とか)をアプリ内で保存する方法が分からなかったので調べたことをメモしておきます。


オライリーのiPhone SDK本(iPhone SDK アプリケーション開発ガイド)にさらっとファイルに保存するという記述があったので(11章)あれこれしてたのですが、どうも実機ではうまくファイルに保存できないようなので(?)ネットで調べてみたらどうやらNSUserDefaultsクラスを使うらしいということが分かりました。

NSUserDefaults Class Reference
http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html



セットする

[[NSUserDefaults standardUserDefaults] setInteger:value forKey:@"foo";

/**
- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName;
- (void)setFloat:(float)value forKey:(NSString *)defaultName;
- (void)setDouble:(double)value forKey:(NSString *)defaultName;
- (void)setBool:(BOOL)value forKey:(NSString *)defaultName;
など
**/

//setObject:forKey を使えばNSStringや配列や辞書もセットできる
[[NSUserDefaults standardUserDefaults] setObject:obj, forKey:@"bar"];


ゲットする
[[NSUserDefaults standardUserDefaults] integerForKey:@"foo";

/**
- (NSString *)stringForKey:(NSString *)defaultName;
- (NSArray *)arrayForKey:(NSString *)defaultName;
- (NSDictionary *)dictionaryForKey:(NSString *)defaultName;
- (NSData *)dataForKey:(NSString *)defaultName;
- (NSArray *)stringArrayForKey:(NSString *)defaultName;
- (NSInteger)integerForKey:(NSString *)defaultName;
など
**/

// 保存してあるものをすべて辞書としてゲットする
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];

0 件のコメント: