黑馬程序員-Foundation2-dictionary

字典: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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章