NSDictionary的使用

通过唯一的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

NSDictionary的使用,布布扣,bubuko.com

时间: 2024-08-08 03:42:25

NSDictionary的使用的相关文章

解决 iOS NSDictionary 输出中文字符”乱码”(Unicode编码)问题

简单定义一个字典,输出结果: NSDictionary *dic = @{ @"我是中文字符": @"223333", @"aaa": @{ @"aaa": @"啦啦啦" } }; NSLog(@"%@", dic); 将会看到这样的"乱码",这种现象经常在调试服务端返回 JSON 结果的时候遇到: 2015-02-25 19:23:40.346 XXXX[13273

当 NSDictionary 遇见 nil

Demo project: NSDictionary-NilSafe 问题 相信用 Objective-C 开发 iOS 应用的人对下面的 crash 不会陌生: *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1] *** setObjectForKey: key cannot be nil *** setObjectForKey

OC学习篇之---Foundation框架中的NSDictionary类以及NSMutableDictionary类

今天来看一下Foundation框架中的NSDictionary类,NSMutableDictionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的. 一.NSDictionary类 [objc] view plain copy // //  main.m //  19_NSDictionary // //  Created by jiangwei on 14-10-

iOS - 数组与字典(NSArray &amp; NSDictionary)

1. 数组的常用处理方式 //--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",a

[BS-14] 打印NSArray和NSDictionary的3种方法

打印NSArray和NSDictionary的3种方法 NSArray *arr = @[@"奔驰",@"宝马",@"路虎",@"Tesla"]; //1.直接打印 NSLog(@"arr:%@",arr); //2.使用for...in遍历 for (NSString *str in arr) { NSLog(@"%@",str); } //3.使用枚举遍历 [arr enumerat

iOS NSDictionary、NSData、JSON等 数据类型相互转换

1.NSDictionary类型转换为NSData类型: NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: @"balance", @"key", @"remaining balance", @"label", @"45", @"value", @"USD", @"curre

Objective - C NSDictionary不可变字典和NSMutableDictionary可变字典

//创建一个不可变的字典对象 //便利构造器创建 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"zhonger", @"name2", @"taixu", @"name1", @"caicai", @"name3", nil]; //初始化方法 //先给value 再给key NSDictionary *

NSDictionary(key与value)

1.key与value关系,用一个key的值控制整个模型 NSDictionary *dic = @{@"channelKey":channelModel,@"channelIndexKey":[NSString stringWithFormat:@"%ld",i],channelModel.channelId:columnList }; key是@“channelKey”,value对应的是一个模型channelModel存储所有的栏目, ke

Xocde新特性--NSDictionary&&NSArray

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {     @autoreleasepool {         NSArray *arr1 = [NSArray arrayWithObjects:@"one",@"tow", nil];         //等价于         NSArray *arr2 = @[@"one",@&

Xcode4.4(LLVM4.0编译器)中NSArray, NSDictionary, NSNumber优化写法

Xcode4.4(LLVM4.0编译器)中NSArray, NSDictionary, NSNumber优化写法 从xcode4.4开始,LLVM4.0编译器为Objective-C添加一些新的特性.创建数组NSArray,字典NSDictionary, 数值对象NSNumber时,可以像NSString的初始化一样简单方便.妈妈再也不担心程序写得手发酸了. A.   NSArray 首先是非常常用的NSArray,NSMutableArray.NSArray是一个初始化后就固定的静态数组.如果