iOS:从NSSet中删除特定对象

时间:2014-04-29 10:19:51

标签: ios core-data nsset

我有这个代码在我的实体“struct”

中存储NSSet
NSString *current_language = [[NSLocale preferredLanguages] objectAtIndex:0];

        if (![current_language isEqualToString:@"en"] && ![current_language isEqualToString:@"fr"])
            current_language = @"en";

        NSMutableSet *deslocalization = [struct mutableSetValueForKey:@"localizedDes"];

        LocalizedDes *localizedDes = (LocalizedDes *)[NSEntityDescription insertNewObjectForEntityForName:@"LocalizedDes" inManagedObjectContext:temporaryContext];
        localizedDes.locale = current_language;
        localizedDescrizione.desloc= [element objectForKey:@"des"];
        [deslocalization addObject:localizedDes];

如您所见,我创建了一个新的Entity LocalizedDes,并将其添加到NSSet desLocalization中。 我可以在这个NSSet中添加两种类型的对象:具有locale =“en”或“fr”的localizedDes。

我想要一个信息,在这个NSSet中删除特定对象的方法是什么?例如,只有具有locale =“en”的对象。

感谢

2 个答案:

答案 0 :(得分:0)

确保在LocalizedDes中实现isEqual和hash方法。

然后你可以这样做:

[deslocalization removeObject:enLocale];

答案 1 :(得分:0)

for (LocalizedDes *localizedDes in [deslocalization copy]) {
    if ([localizedDes.locale isEqualToString@"en"]) {
        [deslocalization removeObject: localizedDes];
    }
}