NSMutableDictionary,作为可变字典,其中的可变和可变字符串,可变数组是一样的。NSMutableDictionary是继承自NSDictionary的,所以上一篇文章中的一些属性和方法在这里都是适用的。下面来看看NSMutableDictionary的定义和初始化。
创建可变字典对象,定义并初始化:
    定义NSMutableDictionary对象的类方法,
    
     numItems是字典中元素的个数。这个方法其实就是向内存申请了一定的内存空间。
    
   
    
     + (
    
    
     instancetype
    
    
     )dictionaryWithCapacity:(
    
    
     NSUInteger
    
    
     )numItems;
    
   
由于NSMutableDictionary是继承自NSDictionary的,NSDictionary是继承自NSObject的,所以适用alloc也可以创建一个可变字典对象,适用方法如下:
    
     – (
    
    
     instancetype
    
    
     )initWithCapacity:(
    
    
     NSUInteger
    
    
     )numItems
    
    
     NS_DESIGNATED_INITIALIZER
    
    
     ;
    
   
    
     
     
     NSMutableDictionary
    
    
     *dic1 = [[
    
    
     NSMutableDictionary
    
    
    
    
     alloc
    
    
     ]
    
    
     initWithCapacity
    
    
     :10];
    
   
    
    
    
     NSMutableDictionary
    
    
     *dic2 = [[
    
    
     NSMutableDictionary
    
    
    
    
     alloc
    
    
     ]
    
    
     init
    
    
     ];
    
   
   上面两中创建形式的区别在于第一个申请了10个元素的空间,第二个只是创建了一个对象。和数组一样,当我们不知道要申请多少空间的时候。我们可以个
   
    dictionaryWithCapacity:方法或者initWithCapacity:方法传递0作为参数。
   
    
     可变字典的初始化赋值,是使用NSDictionary的赋值方法。
    
   
可变字典常用操作方法
在字典后添加一个字典,也是字典后面拼接一个字典。
    
     – (
    
    
     void
    
    
     )addEntriesFromDictionary:(
    
    
     NSDictionary
    
    
     <KeyType, ObjectType> *)otherDictionary;
    
   
    
     删除字典中所有的元素
    
   
    
     – (
    
    
     void
    
    
     )removeAllObjects;
    
   
    
     根据key数组,删除对应的元素
    
   
    
     – (
    
    
     void
    
    
     )removeObjectsForKeys:(
    
    
     NSArray
    
    
     <KeyType> *)keyArray;
    
   
    
     根据key删除一个对应的元素
    
   
    
    
   
    
     – (
    
    
     void
    
    
     )removeObjectForKey:(KeyType)aKey;
    
   
使用一个新的字典覆盖原来字典的数据
    
     – (
    
    
     void
    
    
     )setDictionary:(
    
    
     NSDictionary
    
    
     <KeyType, ObjectType> *)otherDictionary;
    
   
    
     使用key:value形式修改字典中key对应的元素值
    
   
    
     – (
    
    
     void
    
    
     )setObject:(
    
    
     nullable
    
    
     ObjectType)obj forKeyedSubscript:(KeyType <
    
    
     NSCopying
    
    
     >)key
    
    
     NS_AVAILABLE
    
    
     (10_8, 6_0);
    
   
代码示例:
    
    
    
     //
    
    
     创建字典对象,初始化
    
   
    
    
    
     NSDictionary
    
    
     *dic1 = [
    
    
     NSDictionary
    
    
    
    
     dictionaryWithObjectsAndKeys
    
    
     :
    
   
    
    
    
     @”value1″
    
    
     ,
    
    
     @”key1″
    
    
     ,
    
   
    
    
    
    
   
 
