Программирование постоянных данных и примитивных типов данных IOS - PullRequest
1 голос
/ 30 октября 2011

Я пишу приложение для iPhone, которое должно хранить целые числа, так что, когда пользователь откроет приложение, оно сможет извлечь целые числа, сохраненные в последнем сеансе, и когда программа завершится, оно будет хранить целые числа,Проблема, которую я имею, состоит в том, что существует проблема с хранением примитивных типов данных, таких как целые числа.

1 Ответ

2 голосов
/ 30 октября 2011

Для небольших объемов данных вы можете использовать NSUserDefaults, который имеет методы для сохранения примитивных типов, таких как:

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

В противном случае преобразуйте их в NSNumber типы и сохраните как объекты, возможно, в виде списка.

+ (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
...