您的位置:首页 > 移动开发 > IOS开发

字典

2016-06-02 17:35 423 查看
字典:
1,字典是一种数据结构,是以键值对的形式来存储数据

2,字典中的键值对可以是任意类型的对象,但是key一般是字符串
3,键在字典中是唯一存在的

4,字典中,键值对是没有顺序的

 <1>创建方法

(1) 从Xcode4.6 以后允许用下述方式创建一个字典

     
NSDictionary* dic4 =
@{@"1":@"one",@"2":@"two",@"3":@"three”}; 
  
(2) //实例化方法
     - (id)initWithObjectsAndKeys:(id)firstObject, …;

(3) 用一个字典来创建一个新的字典

     -(id)initWithDictionary(NSDictionary*)otherDictionary;

 (4)用两个数组来创建字典,一个数组中装的是所有的键 另外一个数组装的是所有的值,两个数组的长度必须相等

    NSArray* valueArray =@[@"one",@"two",@"three"];

    NSArray* keyArray =
@[@"1",@"2",@"3"];

    NSDictionary* dict3 = [[NSDictionaryalloc]initWithObjects:valueArrayforKeys:keyArray];

 (5)该创建方式携带的参数是值键排列
系统会将奇数个元素作为值,偶数个元素作为键来创建字典

   NSDictionary* dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"two",@"2",nil];

 
//类方法创建

 (6) + (id)dictionaryWithObjectsAndKeys:(id)firstObject,
...;

 (7) + (id)dictionaryWithDictionary:(NSDictionary*)dict;

  <2>获取键值对个数

  - (NSUInteger)count;

  <3>根据key获取相应的值

  - (id)objectForKey:(id)aKey;

  <4>获取字典中所有的key

  - (NSArray*)allKeys;

  <5>获取值是anObject的所有的key

  - (NSArray*)allKeysForObject:(id)anObject; 

  

  <6>获取字典中所有的值

  - (NSArray*)allValues;

  <7>如何遍历字典
         枚举遍历
        NSEnumerator* enu = [dic
keyEnumerator];

        NSString* str;

        while((str = [enu
nextObject])!=
nil) {

            NSLog(@"%@",[dicobjectForKey:str]);

         }

   //通过字典的keyEnumerator方法返回一个枚举器,这个枚举器中装得是字典的Key,遍历这些Key ,通过key 去获取value

快速遍历

for  in循环:
     NSDictionary* dic =
@{@"1":@"one",@"2":@"two",@"3":@"three",@"4":@"four"};

     for
(NSString
* key in
dic) {

          

            NSLog(@"%@",[dicobjectForKey:key]);

     }

二.可变字典

<1>增加键值对
[muDic
setObject:@"one"forKey:@"1"];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对

//增加整个字典
- (void)addEntriesFromDictionary:(NSDictionary*)otherDictionary;

<2>删除键值对

//通过key 去删除key所对应的键值对
      [muDic
removeObjectForKey:@"5"];

       
//把所有想删除的键值对的key都放到一个数组中,通removeObjectsForKeys,删除所有数组中key
对应的键值对

      NSArray* keyArray =
@[@"1",@"3"];

      [muDic
removeObjectsForKeys:keyArray];

//删除所有的键值对

        [muDic
removeAllObjects];

<3>修改键值对
[muDic
setValue:@"five"forKey:@"4"];
//如果Key 是存在的,就修改key 所对应的value 的值,如果不存在,就添加一个键值对

//修改整个字典

  - (void)setDictionary:(NSDictionary*)otherDictionary; 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OC 字典 增删改查 iOS