我有一个NSMutableArray包含一些自定义对象。其中两个对象具有相同的属性,如标题和作者。我想删除重复的对象,并离开另一个。NSArray:删除具有重复属性的对象
Asset *asset;
NSMutableArray *items = [[[NSMutableArray alloc] init] autorelease];
// First
asset = [[Asset alloc] init];
asset.title = @"Developer";
asset.author = @"John Smith";
[items addObject:asset];
[asset release];
// Second
asset = [[Asset alloc] init];
asset.title = @"Writer";
asset.author = @"Steve Johnson";
[items addObject:asset];
[asset release];
// Third
asset = [[Asset alloc] init];
asset.title = @"Developer";
asset.author = @"John Smith";
[items addObject:asset];
[asset release];
,因为它们不是同一个对象,但只能有重复的特性,我怎么可以删除重复的?
所以你说添加添加一个NSString对象到的NSMutableSet然后在相同的字符串存在的下一个循环检查? –
是的 - 一次过,你试着看看你是否已经看过类似的物品。你必须确定什么类似的手段(在这种情况下标题+作者)。 NSSet提供非常快速的查找(内部使用散列)来快速回答这个问题。其中一个缺点是不同的标题+作者组合的额外内存。典型的空间与时间。 – bryanmac
好的,我仍然困惑于如何使用NSSet进行查找。你能提供一个快速的代码示例吗? –