2011-10-30 18 views
1

私は、ユーザーがアプリケーションを開いたときに最後のセッションから保存された整数を取得できるように、そしてプログラムが持つ整数を格納する必要のあるiPhone用のアプリケーションを作成しています終了し、整数を格納します。私が抱えている問題は、整数などのプリミティブなデータ型を格納することに問題があることです。永続データとプリミティブデータ型イオスプログラミング

- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName 
- (void)setFloat:(float)value forKey:(NSString *)defaultName 
- (NSInteger)integerForKey:(NSString *)defaultName 
- (float)floatForKey:(NSString *)defaultName 

そうでなければ、おそらくplistの中で、NSNumberタイプに変換して、オブジェクトとして保存します。あなたのようなプリミティブ型を保存するためのメソッドを持っているNSUserDefaultsを使用することができ、少量のデータについては

+0

どのようにあなたがそれらを格納しようとしていますか? – zaph

+0

5〜6の整数だけを保存する必要があるので、fopen()を使うほうが良いでしょうか? –

+0

そのために、 'NSUserDevaults'は死んでいます。 – zaph

答えて

2

+ (NSNumber *)numberWithInt:(int)value 
+ (NSNumber *)numberWithFloat:(float)value 
- (int)intValue 
- (float)floatValue 

相当量のデータがある場合は、CoreDataを検討してください。

例:

[[NSUserDefaults standardUserDefaults] setObject:@"myStringValue" forKey:@"myStringKey"]; 
[[NSUserDefaults standardUserDefaults] setInteger:42 forKey:@"myIntegerKey"]; 

NSString *myRetreivedString = [[NSUserDefaults standardUserDefaults] stringForKey:@"myStringKey"]; 
NSInteger myRetreivedInteger = [[NSUserDefaults standardUserDefaults] integerForKey:@"myIntegerKey"]; 

NSLog(@"myRetreivedString: '%@'", myRetreivedString); 
NSLog(@"myRetreivedInteger: %d", myRetreivedInteger); 

のNSLog出力:

myRetreivedString: 'myStringValue' 
myRetreivedInteger: 42 
+0

私は愚かだと呼びますが、私は例を持っているかもしれません! –

関連する問題