首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何很好的掌握NSMutableDictionary,NSEnumerator,NSMutableSet?

如何很好的掌握NSMutableDictionary,NSEnumerator,NSMutableSet?
EN

Stack Overflow用户
提问于 2010-12-18 14:51:09
回答 1查看 1.1K关注 0票数 1

我在这三个主题上的知识有点落后:NSMutableDictionaryNSEnumeratorNSMutableSet。当我想要使用它们时,感觉非常困难,即使我已经阅读了开发人员文档。

是否有任何示例代码可以清楚地理解这三个主题?

请帮帮我。

谢谢你马丹·莫汉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-18 15:08:19

理解这些的最好方法取决于你以前的经验。NSDictionary就像它听起来那样:一本字典。这意味着,给定一个键(或词头,如字典中的),您可以查找一个值(或定义):

例如,这本字典给出了关于我的狗的信息:

代码语言:javascript
复制
KEY        VALUE
-------------------------------------------
@"name"       @"tucker"
@"species"    @"canis lupus familiaris"
@"favorite"   @"biscuits"

有了包含该信息的字典dogInfo,我们就可以发送[dogInfo objectForKey:@"name"]并期望接收@"tucker"

NSDictionaryNSMutableDictionary的不同之处在于后者允许在初始化后进行更改。这让你可以做像[dogInfo setObject:@"fetch" forKey:@"game"]这样的事情。这对维护状态、记录引用透明的请求等很有帮助。

NSSet是一种拥有一组对象的方法,但有几个重要的方面:这些对象没有定义的顺序,每个对象只能有一个(没有重复的)。当需要包含唯一的、无序的对象时,可以使用NSSetNSMutableSetNSSet的变体,它允许在初始化后进行更改(例如添加或删除对象)。

NSEnumerator稍微复杂一些,但通常不需要处理它,除非您正在编写自己的库,正在进行过时的编码,或者正在进行复杂的枚举。集合类(如NSDictionaryNSArrayNSSet )使用NSEnumerator的子类来枚举其对象。通常,您只需使用foreach-loop枚举它们,因为它们都实现了<NSFastEnumeration>。但有时,您可能想要做更具体的事情,比如枚举字典的对象(而不是键),或者反向枚举数组。这就是NSEnumerator实例(通常定义为集合对象上的属性)的用武之地。

更新

Justin在评论中指出,NSEnumerator符合<NSFastEnumeration>;这意味着,您几乎不需要知道如何使用NSEnumerator;您可以在枚举器本身上执行foreach循环,如下所示:

代码语言:javascript
复制
for (id object in [dogDict objectEnumerator]) {
  // doing something with the object, disregarding its key
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4477017

复制
相关文章

相似问题

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