帮我解决问题,我一直被困在这里。
我也看到过很多类似的问题,同样的问题。但他们都没有解决我的问题。这就是我需要在Stack上提出类似问题的原因。
我有NSMutableArray,即NSMutableArray *arrNames = [[NSMutableArray alloc] initWithObjects:@"ABC", @"DEF", @"GHI", nil];
现在我要从此数组中删除GHI
。所以我尝试过这种方式,但事实并非如此
锻炼。请帮帮我。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *arrDeletedGTINS = [[NSMutableArray alloc] init];
arrDeletedGTINS = [userDefaults objectForKey:@"deletedArr"];
NSLog(@"%@", arrDeletedGTINS); will give this output ->
( 00000000000017 )
if ([arrDeletedGTINS containsObject:@"00000000000017"]) {
[arrDeletedGTINS removeObject:@"00000000000017"];
}
[userDefaults setObject:arrDeletedGTINS forKey:@"deletedArr"];
[userDefaults synchronize];
如果我出错了那么请纠正我。我正在学习iOS。 请帮帮我。
答案 0 :(得分:1)
这一行是你的问题:
arrDeletedGTINS = [userDefaults objectForKey:@"deletedArr"];
NSUserDefault将数组保存为NSArray,而不是NSMutableArray。
所以用以下代码替换上面的行:
arrDeletedGTINS = [[userDefaults objectForKey:@"deletedArr"] mutableCopy];
答案 1 :(得分:0)
试试这个。
您可以在 NSMutableArray
中使用 containsObject 方法if ([arrNames containsObject:@"GHI"]) {
[arrNames removeObject:@"GHI"];
}