25-NSDictionary、MutableDictionary

来源:互联网 发布:李天下知乎 编辑:程序博客网 时间:2024/05/29 15:08
l通过唯一的key找到对应的value,类似于JavaMap
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对应的值


























0 0