字典:NSDictionary
字典就是鍵和值的集合,鍵和值都是對象類型。NSDictionary在給定的關鍵字(通常是一個NSString)下存儲一個數值(可以是任何類型的對象),放入對象是鍵值對 key-value。
可以用這個關鍵字(key)來查找相應的數值(value)。
下面是dictionary的定義及一些操作:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1.創建空字典.因爲NSDictionary不能改動,所以下列操作是沒有意義的。
NSDictionary *dic = [NSDictionary dictionary];
//2.創建只有一對鍵值對的字典
//zs----->zhansan; ls------>lisi; mm------->meimei (key---->value)
NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"zhangsan" forKey:@"zs"];
//創建多對鍵值的字典
NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];
//注:key和Value必須是對象類型
//以%@輸出字典,控制檯輸出一對{}
NSLog(@"%@", dic);
NSLog(@"%@",dic2);
NSLog(@"%@",dic3);
//4.快速創建字典
//@{...key:value,......}
//key值不能重複,如果重複,後輸入的內容不會顯示。
NSDictionary *dic4 = @{@"zs":@"zhangsan",@"ls":@"lisi",@"cyh":@"cuiyuhe",@"cyh":@"cuichenggong"};
NSLog(@"%@",dic4);
//1.計算字典key,value對數目
NSInteger i = dic4.count;
NSLog(@"%lu",i);
//2.根據key,得到value
NSString *strValue = [dic4 objectForKey:@"cyh"];
NSLog(@"%@", strValue);
//3.字典遍歷
//1).獲取key 2).根據key,得到value
// for(NSString *key in dic4){
// NSString *value = [dic4 objectForKey:key];
// NSLog(@"%@ -----> %@", key,value);
// }
[dic4 enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"%@ = %@", key, obj);
}];
}
return 0;
}