gpt4 book ai didi

objective-c - 在 ios 中添加对象崩溃

转载 作者:行者123 更新时间:2023-11-28 22:51:58 24 4
gpt4 key购买 nike

我正在尝试将一个对象添加到 nsuserdefault 中,但我遇到了这个崩溃“[__NSCFArray insertObject:atIndex:]:发送到不可变对象(immutable对象)的变异方法”它在这条线上崩溃:[currentFav addObject:incomingBabe];

我不知道它为什么会崩溃,它在我的另一个项目上工作。

这是我的代码

-(IBAction)favorite {
NSUserDefaults *standardDefault = [NSUserDefaults standardUserDefaults];
NSMutableArray *currentFav = [[NSUserDefaults standardUserDefaults]objectForKey:@"fav"];
NSLog(@"strings stored = %@",currentFav);
NSMutableArray *newFav = [NSMutableArray arrayWithObject:[NSString stringWithFormat:@"bikini%02d.jpeg",self.currentNumber]];

if (currentFav == NULL){
currentFav = [[NSMutableArray alloc]init];
}
for(NSString *incomingBabe in newFav){
BOOL hasStringAlready = NO;
for(NSString *currentFavorite in currentFav){
if([currentFavorite isEqualToString:incomingBabe]){
hasStringAlready = YES;
NSLog(@"has string already");
break;
}
}
if (!hasStringAlready) {
[currentFav addObject:incomingBabe];
hasStringAlready = YES;
}
}

[standardDefault setObject:currentFav forKey:@"fav"];
[standardDefault synchronize];
}

最佳答案

基本上它表示您正尝试在 NSArray 上使用 NSMutableArray 中的方法。

这是因为“从 NSUserDefaults 返回的值是不可变的,即使您将可变对象设置为值也是如此。”

NSMutableArray *currentFav = [[NSUserDefaults standardUserDefaults]objectForKey:@"fav"];

将返回一个数组,而不是可变数组。你应该制作它的可变副本。

NSMutableArray *currentFav = [[[NSUserDefaults standardUserDefaults]objectForKey:@"fav"] mutableCopy];

关于objective-c - 在 ios 中添加对象崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11769310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com