l通过唯一的key找到对应的value,类似于Java的Map
l常见的创建NSDictionary的方法
l+ (id)dictionary
l+ (id)dictionaryWithObject:(id)object forKey:(id <NSCopying>)key
l+ (id)dictionaryWithObjectsAndKeys:(id)firstObject, ...
l+ (id)dictionaryWithDictionary:(NSDictionary *)dict
l+ (id)dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
l- (id)initWithObjectsAndKeys:(id)firstObject, ...
l- (id)initWithDictionary:(NSDictionary *)otherDictionary
l- (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
l+ (id)dictionaryWithContentsOfFile:(NSString *)path
l+ (id)dictionaryWithContentsOfURL:(NSURL *)url
l- (id)initWithContentsOfFile:(NSString *)path
l- (id)initWithContentsOfURL:(NSURL *)url
NSDictionary的常见用法
l- (NSUInteger)count
返回字典的key数
l- (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary
比较两个字典
l- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile
将一个NSDicionary持久化到文件中去
NSDictionary 访问key和value
l- (NSArray *)allKeys
返回所有的key
l- (NSArray *)allKeysForObject:(id)anObject
返回anObject元素对应的所有key
l- (NSArray *)allValues
返回所有的value
l- (id)objectForKey:(id)aKey
根据aKey返回对应的value
l- (NSArray *)objectsForKeys:(NSArray *)keys notFoundMarker:(id)marker
返回keys对应的所有value,如果没有对应的value,用marker代替
NSDictionary遍历
l快速遍历:for (NSString *key in dict)
l迭代器遍历:
u- (NSEnumerator *)keyEnumerator
key的迭代器
u- (NSEnumerator *)objectEnumerator
value的迭代器
lblock遍历
[dict enumerateKeysAndObjectsUsingBlock:^(id key,
id object, BOOL* stop) {
NSLog(@"key=%@, object=%@", key, object);
NSDictionary的key排序
l- (NSArray *)keysSortedByValueUsingComparator:(NSComparator)cmptr
l- (NSArray *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr
l- (NSArray *)keysSortedByValueUsingSelector:(SEL)comparator
用法参展NSArray的排序
NSMultableDictionary 可变的Dictionary
l可变的NSDictionary,NSDictionary的子类
l初始化方法:
u+ (id)dictionaryWithCapacity:(NSUInteger)numItems
u- (id)initWithCapacity:(NSUInteger)numItems
u也可以用初始化NSDictionary的方法来初始化NSMutableDictionary
NSMutableDictionary 添加元素
l- (void)setDictionary:(NSDictionary *)otherDictionary
设置当前集合的元素
l- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey
添加一个键值对
l- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary
添加otherDictionary的所有元素到当前集合中
NSMultableDictionary 删除元素
l- (void)removeAllObjects
删除所有元素
l- (void)removeObjectForKey:(id)aKey
删除aKey对应的值
l- (void)removeObjectsForKeys:(NSArray *)keyArray
删除keyArray中所有key对应的值