首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否使用NSSet/NSMutableSet过滤对象?

是否使用NSSet/NSMutableSet过滤对象?
EN

Stack Overflow用户
提问于 2010-10-19 12:09:19
回答 1查看 7.7K关注 0票数 2

我已经看到一些关于使用NSSet/NSMutableSet的过滤器对象的问题/答案。这些情况使用简单类型的对象,如NSStringint。以下是用于过滤NSString对象的代码示例:

代码语言:javascript
复制
NSSet smallArray = [[NSSet alloc] initWithObjects:@"0", @"1", @"2", nil];
NSArray bigArray = [[NSArray alloc] initWithObjects:@"0", @"1", @"4", @"5", ..., nil];
NSMutableSet *intersection = [NSMutableSet setWithArray:smallArray];
[intersection intersectSet:[NSSet setWithArray:bigArray];
NSArray *result = [NSArray arrayWithSet:intersection];

如果set或array中的对象是Object-C类实例,我不确定它是如何工作的。以下面的类为例:

代码语言:javascript
复制
@interface MyObject: NSObject {
   int id;
   NSString *name;
   NSString *city;
   ...
}

我不确定set的intersetSet:如何处理上述类型的对象。如果我只想通过比较id来得到MyObject对象的smallArray和bigArray的交集,我怀疑我是否可以使用intersetSet:选择器方法?如果没有,我不确定是否应该向MyObject类添加任何方法,以便set知道如何比较对象?

EN

回答 1

Stack Overflow用户

发布于 2010-10-19 12:19:20

您需要在MyObject上实现isEqual: (以及hash),以便如果两个对象“匹配”,则返回YES。

从文档中Here's一个又快又脏的示例。也可以查看this SO question

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3965259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档