我有这个代码在我的实体“struct”
中存储NSSetNSString *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”的对象。
感谢
答案 0 :(得分:0)
确保在LocalizedDes中实现isEqual和hash方法。
然后你可以这样做:
[deslocalization removeObject:enLocale];
答案 1 :(得分:0)
for (LocalizedDes *localizedDes in [deslocalization copy]) {
if ([localizedDes.locale isEqualToString@"en"]) {
[deslocalization removeObject: localizedDes];
}
}