如何从与NSNumber匹配的NSMutableArray中删除对象

时间:2018-10-19 00:22:13

标签: ios objective-c nsarray nspredicate

我有一个像这样的数组:

    {
    id = 8281;
    name = “John”;
    title = “Title One“;
     },
    {
    id = 8729;
    name = “Bob”;
    title = “Title Two“;
    },
    {
    id = 8499;
    name = “Dave”;
    title = “Title Three“;
    }

我想删除包含特定ID的数组。

举例来说,我有:

NSNumber *removeThis =  '8281' ; 

我上面的数组被命名为“故事”。

我尝试过:

[stories removeObject:removeThis];

但这不起作用。

我也尝试过:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id != %@", removeThis];
NSArray *results = [stories filteredArrayUsingPredicate:predicate];

但是数据永远不会从数组中删除。

有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

我不这样认为:

NSNumber *removeThis =  '8281'; 

...甚至是有效的Objective-C。使用@(number)来制作NSNumber文字,例如:

NSNumber *removeThis =  @(8281); 

从那里,它应该与您键入的内容完全一样:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id != %@", removeThis];
NSArray *results = [stories filteredArrayUsingPredicate:predicate];