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″
,