根据key的值从NSDictionary的NSMutableArray中删除重复项

时间:2015-10-10 07:39:58

标签: ios objective-c duplicate-removal github-mantle

我有NSMutableArray,例如,10 NSMutableArrays。这些NSMutableArrays中的每一个都包含不同数量的NSDictionary对象,我已为其创建了模型类。我从API响应中获取此数据。第一次进行API调用时,响应将是整个数据。从那时起,当进行API调用时,它只返回被修改的数据。

当我从API响应中获取一些新数据时,它包含已经在字典数组中但稍作修改的数据。

模型类的结构如下:

SubCategory.h

@interface SubCategory : MTLModel <MTLJSONSerializing>

@property (nonatomic, retain) NSString *subCategoryID;
@property (nonatomic, retain) NSString *subCategoryName;
@property (nonatomic, retain) NSString *status;

@end

返回的JSON对象如下所示:

{
    "sub_category" =             (
                            {
                id = 55ed48123;
                name = "Sub Category 1";
                status = 1;
            },
                            {
                id = 55ed47ed3;
                name = "Sub Category 2";
                status = 1;
            }
      );
}

新数据的“id”字段相同。但它的“名称”和“状态”字段是不同的。我想用新数据替换NSMutableArrayNSDictionary个对象中的数据,以便它保留此数组中对象的顺序。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

1:使用NSPredicate创建重复条件的条件。

2:使用filteredArrayUsingPredicate获取重复对象的数组。

3:从重复的数组中删除一个对象。

4:使用removeObjectsInArray从原始数组中删除重复数组中的所有对象列表。