我正在为iPhone编写一个需要存储整数的应用程序,以便当用户打开应用程序时,它将能够检索上次会话中存储的整数,并且当程序结束时,它将存储整数。我遇到的问题是存储原始数据类型(如整数)存在问题。
答案 0 :(得分:2)
对于少量数据,您可以使用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