1.NSDictionary初始化
1)字典中元素是鍵值對,所以字典元素都是成對出現(xiàn)的,一個元素就是一對(有key和對應(yīng)的value)
2)鍵和值都是對象類型,鍵和值的類型可以不同
3)在字典中,不能出現(xiàn)相同的key,但可以出現(xiàn)相同的value,key的唯一性,這樣就能夠通過key唯一確定value
//NSDictionary創(chuàng)建
//不可變字典:字典對象一旦創(chuàng)建完成后,字典成員不能夠被修改,增加和刪除
NSDictionary *dictionary = @{@"key1":@"value1", @"key2":@"value2"};
//常用//初始化不可變字典//字典中的元素是成對出現(xiàn)的郊霎,要有key和value//key:value
#pragma mark 對象方法創(chuàng)建字典
NSDictionary *dictionary1 = [[NSDictionary alloc] initWithDictionary:dictionary];
//用其他字典初始化當前的字典對象
//字典中的key和value可以是任意的oc類型//nil:字典的結(jié)束標志
NSDictionary *dictionary2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1",
@"value2", @"key2", nil];
//value在前key在后摩渺,成對出現(xiàn)//最常用
#pragma mark 類方法創(chuàng)建字典
NSDictionary *dictionary3 = [NSDictionary dictionaryWithDictionary:dictionary];
NSDictionary *dictionary4 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1",
@"value2", @"key2", nil];
2.NSDictionary的操作
//字典中元素個數(shù)
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1",
@"value2", @"key2", nil];
//- (NSUInteger)count;
//作用:字典中元素個數(shù)
[dictionary count];
//根據(jù)key(索引)找value(值)
//- (id)objectForKey:(id)aKey;
//作用:根據(jù)key找對應(yīng)value
[dictionary objectForKey:@"key1"];
//獲取字典中的所有的key
//- (NSArray *)allKeys;
//作用:獲取字典中所有的key
//返回是一個數(shù)組
[dictionary allKeys];
//獲取字典中所有的value
//第一種寫法
for (NSString *key in [dictionary allKeys]) {
[dictionary objectForKey:key];
}
//第二種寫法
- (NSArray *)allValues;
//獲取某個值value對應(yīng)的所有鍵key
- (NSArray *)allKeysForObject:(id)anObject;
3.NSMutableDictionary
//可變字典初始化
NSMutableDictionary *mutableDictionary = [[NSMutableDictionary alloc] init];//創(chuàng)建一個空
//對象方法初始化一個空的字典
NSMutableDictionary *mutableDictionary1 = [[NSMutableDictionary alloc] initWithCapacity:0];
//類方法初始化一個空的字典
NSMutableDictionary *mutableDictionary2 = [NSMutableDictionary dictionaryWithCapacity:0];
//向字典中添加元素(增加操作)
NSDictionary *dic = @{@"height": @"183"};
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:0];//創(chuàng)建一個空字典
//- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
//作用:字典的末尾追加元素
[dictionary setObject:@"chen chao" forKey:@"name"];
[dictionary setObject:@"good teacher" forKey:@"info"];
//- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;
//作用:字典末尾追加一個字典
[dictionary addEntriesFromDictionary:dic];
//
//字典中元素的刪除(刪除操作)
//創(chuàng)建一個空字典
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:0];
[dictionary setObject:@"chen chao" forKey:@"name"];
[dictionary setObject:@"good teacher" forKey:@"info"];
//- (void)removeObjectForKey:(id)aKey;
//作用:根據(jù)key刪除對應(yīng)的元素
[dictionary removeObjectForKey:@"info"];//常用
//刪除所有的元素
[dictionary removeAllObjects];
//字典中元素的修改
NSDictionary *dic = @{@"height": @"183"};
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:0];//創(chuàng)建一個空字典
[dictionary setObject:@"chen chao" forKey:@"name"];
[dictionary setObject:@"good teacher" forKey:@"info"];
//- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
//作用:key值字典中已經(jīng)存在砰琢,進行覆蓋,如果不存在叶雹,追加
[dictionary setObject:@"hot man" forKey:@"info"];
//- (void)setDictionary:(NSDictionary *)otherDictionary;
//作用:替換字典
[dictionary setDictionary:dic];