我喜欢som帮助我解决这个问题,我正在使用那些不会被添加到数组中的对象。
- (IBAction)done:(id)sender{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *katArr = [defaults objectForKey:@"kategorier"];
NSMutableArray *kategorier = [katArr mutableCopy];
[kategorier addObject:[katfield text]];
NSLog(@"la till kat: %d", [kategorier count]);
[defaults setObject:kategorier forKey:@"kategorier"];
NSArray *bArr = [defaults objectForKey:@"bild"];
NSMutableArray *bilds = [bArr mutableCopy];
[bilds addObject:valdFarg];
NSLog(@"la till pic: %d", [bilds count]);
[defaults setObject:bilds forKey:@"bild"];
[defaults synchronize];
[self dismissModalViewControllerAnimated:YES];
}
第一个对象“[katfield text]”正在添加,NSLog输出计数。 问题是我第二次用对象“valdFarg”做它,它不起作用。 我已经尝试为阵列分配内存,但这不是问题,至少我认为。
感谢。
答案 0 :(得分:0)
如果NSMutableArray * bilds为nil [bilds addObject:valdFarg];不会使bilds成为一个具有一个对象的可变数组;
而不是
NSArray *bArr = [defaults objectForKey:@"bild"];
NSMutableArray *bilds = [bArr mutableCopy];
DO
NSMutableArray *bilds = [NSMutableArray arrayWithArray:[defaults objectForKey:@"bild"]];
确保它永远不会为零并且你总是有一个可以添加的可变数组。
答案 1 :(得分:-3)
也许你正在使用错误的密钥,所以它会让你返回零:
NSArray *bArr = [defaults objectForKey:@"bild"];
是不是bilds而不是bild?
NSArray *bArr = [defaults objectForKey:@"bilds"];