NSDictionary的使用

本文详细介绍了NSDictionary的创建方法,包括使用不同的初始化方法和参数。同时,涵盖了NSDictionary的常用操作,如获取字典长度、比较字典、将字典写入文件等。此外,还讲解了如何访问字典中的key和value,提供了遍历字典的方法,以及如何对字典的key进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过唯一的key找到对应的value,类似于Java中的Map

创建NSDictionary的方法

  • + (id)dictionary
  • + (id)dictionaryWithObject:(id)object forKey:(id<NSCopying>)key //作为key的对象需实现NSCopying协议
  • + (id)dictionaryWithObjectsAndKeys:(id)firstObject,... //key和Object需成功出  , 如: NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"v1", @"k1",@"v2",@"k2",nil]
  • + (id)dictionaryWithDictionary:(NSDictionary *)dict
  • + (id)dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
  • - (id)initWithObjectsAndKeys:(id)firstObject,...
  • - (id)initWithDictionary:(NSDictionary *)otherDictionary
  • - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
  • + (id)dictionaryWithContentsOfFile:(NSString *)path
  • + (id)dictionaryWithContentsOfURL:(NSURL *)url
  • - (id)initWithContentsOfFile:(NSString *)path
  • - (id)initWithContentsOfURL:(NSURL *)url

NSDictionary常用方法

  • - (NSUInteger) count   //返回字典的key数
  • - (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary   //比较两个字典
  • - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile //将一个NSDictionary持久化到文件中去

NSDictionary访问key和value

  • - (NSArray *)allKeys   //返回所有的key
  • - (NSArray *)allKeysForObject:(id)anObject  //返回anObject元素对应的所有key
  • - (NSArray *)allValues   //返回所有的value
  • - (id)objectForKey:(id)aKey  //根据aKey返回对应的value
  • - (NSArray *)objectsForKeys:(NSArray *)keys notFoundMarker:(id)marker //返回keys对应的所有value, 如果没有对应的value, 用marker代替

NSDictionary遍历

  • 快速遍历: for (NSString *key in dict)
  • 迭代器遍历:
    • - (NSEnumerator *)keyEnumerator  //key的迭代器
    • - (NSEnumerator *)objectEnumerator  //value的迭代器
  • block遍历 [dict enumeratorKeysAndObjectsUsingBlock:^(id key, id object, BOOL *stop){  NSLog(@"key=%@, object=%@", key, object); }];

NSDictionary的key排序

  • - (NSArray *)keyssortedByValueUsingComparator:(NSComparator)cmptr
  • - (NSArray *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr
  • - (NSArray *)keysSortedByValueUsingSelector:(SEL)comparator

转载于:https://www.cnblogs.com/martinhu/p/3868024.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值