iOS - 在NSUserDefaults中存储标准对象时遇到问题

时间:2011-01-29 01:57:38

标签: iphone ipad ios

这个问题一直让我发疯。下面的代码不是我正在尝试做的最终版本,我把它放在一起只是为了测试以试图找出NSUserDefaults发生了什么。

非常基础 - 为iOS 4.2开发。我有两个我想要存储的变量 - 一个BOOL和一个包含单个NSNumber的NSArray。 BOOL存储正常,NSArray不存储。

变量imageStringCheck和imageStringStore在类中是全局的,所以我也可以在另一个方法中使用它们。

当我检索NSArray时,它总是空的。我只是没有看到我的错误在哪里。

NSArray *storeCount;
BOOL checkStore = NO;
NSNumber *storedNumber;
int countit = 0;

checkStore = [[NSUserDefaults standardUserDefaults] boolForKey:imageStringCheck];
NSLog(@"Stored: %d", checkStore);

if (checkStore)
{
  storeCount = [[NSUserDefaults standardUserDefaults] arrayForKey:imageStringCheck];
  storedNumber = [storeCount objectAtIndex:0];
  countit = [storedNumber intValue];

  NSLog(@"Array size: %d", [storeCount count]);
}

NSLog(@"Count: %d", countit);

countit++;

storeCount = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:countit], nil];
NSLog(@"Array size: %d val: %d", [storeCount count], [[storeCount objectAtIndex:0] integerValue]);

checkStore = YES;

[[NSUserDefaults standardUserDefaults] setBool:checkStore forKey:imageStringCheck];
[[NSUserDefaults standardUserDefaults] setObject:storeCount forKey:imageStringStore];

[[NSUserDefaults standardUserDefaults] synchronize];

0 个答案:

没有答案