iOS開發OC基礎:OC字典NSDictionary以及NSMutableDictionary基本方法的使用

因爲OC中的字典比較簡單,掌握基本的用法就可以實現大部分的開發,所以本文的NSDictionary和NSMutableDictionary的方法介紹篇幅很短,全部的源代碼如下:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        //1.創建一個NSDictionary對象,用來存放name:zhangsan sex:girl age:23
        NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"zhangsan", @"name", @"girl", @"sex", [NSNumber numberWithInteger:23], @"age", nil];
        NSLog(@"%@", dic1);
        
        //2.計算字典元素個數
        NSUInteger count = [dic1 count];
        NSLog(@"count = %lu", count);
        
        //3.獲取字典的所有key
        NSArray *keys = [dic1 allKeys];
        NSLog(@"%@", keys);
        
        //4.獲取所有的value
        NSArray *values = [dic1 allValues];
        NSLog(@"%@", values);
        
        //5.根據key獲得對應的value
        NSNumber *age = [dic1 objectForKey:@"age"];
        NSLog(@"age = %@", age);
        NSString *name = [dic1 objectForKey:@"name"];
        NSLog(@"name : %@", name);
        
        //6.快速遍歷(快速枚舉)
        //對於字典快速遍歷時,獲取到的是key,然後獲取到key之後通過objectForKey:獲取key對應的value
        for (NSString *key in dic1) {
            NSLog(@"%@ = %@", key, [dic1 objectForKey:key]);
        }
        
        
        //可變字典:NSMutableDictionary
        //1.創建一個NSMutableDictionary對象,使用initWithObjectsAndKeys初始化方法
        NSMutableDictionary *dic2 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"lisi", @"name", @"girl", @"sex", [NSNumber numberWithInteger:20], @"age", nil];
        
        //2.添加一個條目(字典裏面添加元素)
        //給dic2添加score:90.5條目
        [dic2 setObject:[NSNumber numberWithFloat:90.5] forKey:@"score"];
        NSLog(@"%@", dic2);
        
        
        //setObject:forKey:當指定的key在字典中存在時,則修改key所對應的value,如果給定的key不是字典中的key,則向字典中添加一個條目:key以及key對應的value
        
        //3.修改條目
        //將dic2的年齡改爲30.
        [dic2 setObject:[NSNumber numberWithInteger:30] forKey:@"age"];
        NSLog(@"%@", dic2);
        
        //4.刪除條目
        //(1)將dic2的年齡移除掉
        [dic2 removeObjectForKey:@"age"];
        NSLog(@"dic2 : %@", dic2);
        
        //(2)刪除dic2中的所有條目
        [dic2 removeAllObjects];
        NSLog(@"dic2 : %@", dic2);
        
        //將dic2的內容複製到dic3中
        NSMutableDictionary *dic3 = [[NSMutableDictionary alloc] init];
        [dic3 setDictionary:dic2];
        NSLog(@"dic3 : %@", dic3);
        
        //字典的特點
        //1.字典是一個無序的集合;
        //2.字典元素是通過一對鍵值對,也就是一個條目,一個key對應一個value,但是一個value可以對應多個key;
        //3.字典取元素,通過key來得到所對應的value;
    }
    return 0;
}



代碼中的註釋已經解釋的很清楚了,可以根據自己的需要查找相應的方法,在下面一定要多練習。需要注意的是一個key只能對應一個value,而多個key可以對應一個value。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章