我正在为 iPhone 创建一个名称生成器应用程序,这就是我想要做的。
为了做到这一点,下面是正在发生的事情:
UILabel
中. NSMutableArray
(我认为这在我的代码中不能正常工作)。 NSMutableArray
然后保存在 NSUserDefaults
. UITableView
细胞。 我的具体问题是,我是否正确处理了这个保存/持久存储过程?这是有问题的片段:
- (IBAction)saveName:(id)sender {
// save current baby name to array
NSMutableArray *babyNameArray = [[NSMutableArray alloc] init];
[babyNameArray addObject:babyname.text];
// save list of babynames to nsuserdefaults
[[NSUserDefaults standardUserDefaults] setObject:babyNameArray forKey:@"My Key"];
// for testing log names listed in nsuserdefaults
NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
}
这是整个文件内容的粘贴箱链接(带注释):http://pastebin.com/hQRM9Azh
最佳答案
每次添加时,您都会从一个空数组 ([[NSMutableArray alloc] init]
) 重新开始——而不是从现有项目开始。
这是一些添加到现有条目的代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *babyNameArray = [[defaults stringArrayForKey:@"My Key"] mutableCopy];
if (!babyNameArray) babyNameArray = [[NSMutableArray alloc] init];
[babyNameArray addObject:babyname.text];
[defaults setObject:babyNameArray forKey:@"My Key"];
[defaults synchronize];
关于iphone - 将值附加到 NSMutableArray 并保存到 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692504/