【发布时间】:2014-08-11 10:45:19
【问题描述】:
我正在尝试将NSMutableArray 保存到NSUserDefaults,然后重新加载它并使用它来填充按钮标签。有人可以看看并告诉我我在这里做错了什么吗?
当我将文件加载到新数组时,它显示为空。我试图将标题设置为的所有按钮都在称为按钮的 ibCollectionOutlet 中
-(void)save {
[[NSUserDefaults standardUserDefaults] setObject:self.pressCountArray forKey:@"savedFile"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
-(void)load{
NSMutableArray *countArray = [[[NSUserDefaults standardUserDefaults] arrayForKey:@"savedFile"] mutableCopy];
for (NSInteger i = 0; i < [self.pressCountArray count]; i++){
self.pressCountArray[i] = countArray[i];
}
for (NSInteger i = 0; i < [self.buttons count]; i++){
UIButton *btn = self.buttons[i];
int curCnt = [[self.pressCountArray objectAtIndex:i] integerValue];
[btn setTitle:[NSString stringWithFormat:@"%i",curCnt] forState:UIControlStateNormal];
}
}
【问题讨论】:
-
放断点或者 NSlog 保存之前和之后的值,以了解发生了什么
-
pressCountArray 是如何声明的以及如何设置它的内容?第一个循环应替换为 `self.pressCountArray = [[[NSUserDefaults standardUserDefaults] arrayForKey:@"saveFile"] mutableCopy];我会尝试在 save 方法中放置一个断点并在调试器中打印 [NSUserDefaults standardDefaults] 的内容。
-
您可以手动检查您的用户默认设置或在这两种方法之前和之后将其打印出来吗?也许你会发现你的错误。
-
PressCountArray 为 16 个整数,介于 1-3 之间,当我在加载后使用断点时,我的 pressCountArray 为空?
标签: ios objective-c nsmutablearray nsuserdefaults