这个问题一直让我发疯。下面的代码不是我正在尝试做的最终版本,我把它放在一起只是为了测试以试图找出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];