简体   繁体   English

如何从NSMutableArray删除特定的NSString

[英]How do I delete particular NSString from NSMutableArray

Help me to sort-out my problem, I've been stuck over here. 帮助我解决我的问题,我被困在这里。

I've also seen many questions similar to this, with same problem. 我也看到了许多与此类似的问题,同样的问题。 But none-of them solved my problem. 但是他们都没有解决我的问题。 That's why I need to ask similar question on Stack. 这就是为什么我需要在Stack上问类似的问题。

I've NSMutableArray ie NSMutableArray *arrNames = [[NSMutableArray alloc] initWithObjects:@"ABC", @"DEF", @"GHI", nil]; 我有NSMutableArray,即NSMutableArray *arrNames = [[NSMutableArray alloc] initWithObjects:@"ABC", @"DEF", @"GHI", nil];

Now I want to delete GHI from this array. 现在我要从该阵列中删除GHI So I've tried this way, but it doesn't work-out. 因此,我已经尝试过这种方式,但是没有成功。 Please help me. 请帮我。

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
        NSMutableArray *arrDeletedGTINS = [[NSMutableArray alloc] init];
        arrDeletedGTINS = [userDefaults objectForKey:@"deletedArr"];


NSLog(@"%@", arrDeletedGTINS); will give this output ->

( 00000000000017 ) (00000000000017)

    if ([arrDeletedGTINS containsObject:@"00000000000017"]) {
        [arrDeletedGTINS removeObject:@"00000000000017"];
    }

    [userDefaults setObject:arrDeletedGTINS forKey:@"deletedArr"];
    [userDefaults synchronize];

If I'm going some-where wrong then please correct me. 如果我出了点问题,请纠正我。 I'm learning iOS. 我正在学习iOS。 Please help me. 请帮我。

This line is your issue : 这行是您的问题:

arrDeletedGTINS = [userDefaults objectForKey:@"deletedArr"];

NSUserDefault saves array as NSArray, not as NSMutableArray. NSUserDefault将数组另存为NSArray,而不是NSMutableArray。
So replace the above line by : 因此,将以上行替换为:

arrDeletedGTINS = [[userDefaults objectForKey:@"deletedArr"] mutableCopy];

Try this. 尝试这个。

You can use containsObject method in an NSMutableArray 您可以在NSMutableArray中使用containsObject方法

if ([arrNames containsObject:@"GHI"]) {
    [arrNames removeObject:@"GHI"];
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM