1
我正在爲需要存儲整數的iPhone編寫應用程序,以便當用戶打開應用程序時,它將能夠檢索從上次會話存儲的整數,以及程序何時結束,它將存儲整數。我遇到的問題是存儲原始數據類型(如整數)時存在問題。持久數據和原始數據類型Ios編程
我正在爲需要存儲整數的iPhone編寫應用程序,以便當用戶打開應用程序時,它將能夠檢索從上次會話存儲的整數,以及程序何時結束,它將存儲整數。我遇到的問題是存儲原始數據類型(如整數)時存在問題。持久數據和原始數據類型Ios編程
對於少量的數據,可以使用其NSUserDefaults的方法有保存原始類型,如:
- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName
- (void)setFloat:(float)value forKey:(NSString *)defaultName
- (NSInteger)integerForKey:(NSString *)defaultName
- (float)floatForKey:(NSString *)defaultName
他們,否則轉換爲NSNumber
類型並保存爲對象,也許在plist中。
+ (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
叫我笨,但我可以請一個例子! –
如何你想存儲它們? – zaph
那麼因爲我只需要保存五六個整數,使用fopen()會更好嗎? –
對於那幾個,'NSUserDevaults'已經很簡單了。 – zaph