首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从NSSet获取对象

从NSSet获取对象
EN

Stack Overflow用户
提问于 2010-09-30 08:07:18
回答 7查看 95.4K关注 0票数 95

如果不能使用objectAtIndex:从NSSet获取对象,那么如何检索对象呢?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-09-30 08:12:17

一个集合有几个用例。您可以枚举(例如,使用enumerateObjectsUsingBlock或NSFastEnumeration),调用containsObject来测试成员资格,使用anyObject获取成员(不是随机的),或者使用allObjects将其转换为数组(没有特定的顺序)。

当你不想要重复的,不关心顺序的,并且想要快速的成员测试时,set是合适的。

票数 141
EN

Stack Overflow用户

发布于 2010-09-30 08:12:52

NSSet没有objectAtIndex方法:

尝试调用allObjects,它将返回所有对象的NSArray。

票数 31
EN

Stack Overflow用户

发布于 2013-08-04 22:20:01

如果您有某种唯一标识符来选择所需的对象,则可以使用filteredSetUsingPredicate。

首先创建谓词(假设您在对象中的唯一id称为“NSString”,并且它是一个标识符):

代码语言:javascript
复制
NSPredicate *myPredicate = [NSPredicate predicateWithFormat:@"identifier == %@", identifier];

然后使用谓词选择对象:

代码语言:javascript
复制
NSObject *myChosenObject = [mySet filteredSetUsingPredicate:myPredicate].anyObject;
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3826789

复制
相关文章

相似问题

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