运行 这段程序后,得到 这样的结果:
在这个程序当中,我 向NSDictionary这类物件 发送了 dictionaryWithObjectsAndKeys:这条消息 并且 将 参数 一并 发送给了 NSDictionary这类物件。NSDictionary这类物件 收到 dictionaryWithObjectsAndKeys:这条消息后,会创建出 一个NSDictionary的物件,并且 将 参数中的“关键字-物件”组合 存储 在这个NSDictionary物件当中。
dictionaryWithObjectsAndKeys:这条消息的参数 应该按照 物件,关键字,物件,关键字的顺序排列,并且 用 nil 结尾。
创建完 glossary这个NSDictionary类型的物件后,
这行语句 将 辞典物件glossary中的关键字 逐个 读取 到变量key当中。每读取完 一个关键字,程序 都会执行
这行语句 将 当前的关键字 显示出来 并且 将 当前关键所对应的物件 从glossary这个物件中 读取 并且 显示出来。
从辞典物件中读取出来的物件 并没有 特别的顺序。如果 你 想将 辞典中的物件 以字母表顺序 显示出来,你 可以先将 辞典中的关键字 读取出来,排序,再 存储 在数组物件当中。接着 根据关键字的顺序 在辞典物件中 将 每个关键字所对应的物件 读取 并且 显示出来。keysSortedByValueUsingSelector:这项措施 已经帮 你 完成了 一半的工作,就是 根据你的排序标准 将 排好序的关键字 用 数组物件的形式 传递 给你。
下面这个表格 列举了 适用于NSDictionary这类物件的措施:
措施名称 | 描述 |
+(id)dictionaryWithObjectsAndKeys:物件1,关键字1,物件2,关键字2,…,nil | 用“物件-关键字”组合{关键字1,物件1},{关键2,物件2}等创建一个辞典物件 |
-(id)initWithObjectsAndKeys:物件1,关键字1,物件2,关键字2,…,nil | 用“物件-关键字”组合{关键字1,物件1},{关键2,物件2}对已经分配了内存地址的辞典物件进行初始化 |
-(unsigned int)count | 统计出其实施对象中条目的数量 |
-(NSEnumerator *)keyEnumerator | 将辞典物件中的关键字以NSEnumerator物件的形式传递回来 |
-(NSArray *)keysSortedByValueUsingSelector:(SEL)selector | 根据SEL类型的措施标志selector所代表的措施的比较结果将实施对象中的关键字排序后以数组物件的形式传递出来 |
-(NSEnumerator *)objectEnumerator: | 将辞典物件中的物件以NSEnumerator物件的形式传递出来 |
-(id)objectForKey:关键字 | 将辞典物件中关键字所对应的物件读取出来 |
下面的表格 列举了 适用于NSMutableDictionary这类物件的措施:
措施名称 | 描述 |
+(id)dictionaryWithCapacity:size | 创建出长度为size的辞典物件 |
-(id)initWithCapacity:size | 将已经分配了内存地址的辞典物件的长度设定为size |
-(void)removeAllObjects | 将辞典物件中的所有条目删除 |
-(void)removeObjectForKey:关键字 | 将辞典物件中关键字所对应的物件删除 |
-(void)setObject:物件 forKey:关键字 | 将关键字及其所对应的物件添加到辞典物件当中 |