Objective-C語言——NSMutableDictionary可變字典




#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
        //可變字典  NSMutableDictionary
        //1.初始化方法
        //創建一個空的字典
        NSMutableDictionary *mDictionary1 = [NSMutableDictionary dictionary];
        
        //創建一個有一個鍵值對的可變字典
        NSMutableDictionary *mDictionary2 = [NSMutableDictionary dictionaryWithObject:@"Rick" forKey:@"name"];
        
        //創建一個有多個鍵值對的可變字典
        NSMutableDictionary *mDictionary3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age",@"GZ",@"address", nil];
        
        //通過另一個字典創建一個字典
        NSMutableDictionary *mDictionary4 = [NSMutableDictionary dictionaryWithDictionary:mDictionary3];
        
        
//        NSArray *array = mDictionary4.allKeys;
//        for (NSString *key in array) {
//            NSLog(@"%@ = %@",key,mDictionary4[key]);
//        }
        
        NSEnumerator *enumerator = [[mDictionary4 allKeys] objectEnumerator];
        NSString *key ;
        while (key = [enumerator nextObject])
        {
            NSLog(@"%@ = %@",key,mDictionary4[key]);
        }
        
        //可變字典獨有的初始化方法
        NSMutableDictionary *mDictionary5 = [NSMutableDictionary dictionaryWithCapacity:10];
        //創建了初始大小爲10個鍵值對的可變字典。同樣的,參數 num 只是初始的大小,提高程序效率,並沒有限制字典的大小,如果繼續往裏面添加數據,字典的元素個數會繼續增加。
        
        //從本地讀取字典
        NSMutableDictionary *mDictionary6 = [NSMutableDictionary dictionaryWithContentsOfFile:@""];
        
        //從網絡讀取字典
        NSMutableDictionary *mDictionary7 = [NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@""]];
        
        //操作字典
        //增
        [mDictionary5 setValue:@"Rick" forKey:@"name"];
        [mDictionary5 setValue:@25 forKey:@"age"];
        
        //改(如果原來字典中已有了key這個關鍵字,那麼這次新加的值就會覆蓋掉原來關鍵字(鍵)key對應的值)
        [mDictionary5 setValue:@"Jack" forKey:@"name"];
        
        //新語法改
        mDictionary5[@"name"] = @"Leo";
        
        //刪除指定key的對象
        [mDictionary5 removeObjectForKey:@"name"];
        
        //刪除所有對象
        [mDictionary5 removeAllObjects];
        
        NSLog(@"dic5 = %@",mDictionary5);
        
        //例子
        NSMutableDictionary *mDictionary8 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name1",@25,@"age",@"GZ",@"address",@"Rick",@"name2",@"Rick",@"name3", nil];
        
        NSEnumerator *en = [[mDictionary8 allKeys] objectEnumerator];
        NSString *key1;
        while (key1 = [en nextObject]) {
            NSLog(@"%@ = %@",key1, mDictionary8[key1]);
        }
        
        
        NSArray *keyD8 = mDictionary8.allKeys;
        for (NSString *key in keyD8)
        {
//            
//            NSString *string ;
//            if ([mDictionary8[key] isKindOfClass:[NSNumber class]]) {
//                int i = [mDictionary8[key] intValue];
//                string = [NSString stringWithFormat:@"%d",i];
//            }
//            else
//            {
//                string = mDictionary8[key];
//            }
            
            NSString *string = mDictionary8[key];
            if ([string isEqual:@"Rick"])
            {
                NSLog(@"key = %@",key);
            }
            
        }
              
    }
    return 0;
}


運行結果


2015-12-16 09:54:19.626 OC_06_02[7083:253673] name = Rick

2015-12-16 09:54:19.628 OC_06_02[7083:253673] age = 25

2015-12-16 09:54:19.629 OC_06_02[7083:253673] address = GZ

2015-12-16 09:54:19.643 OC_06_02[7083:253673] dic5 = {

}

2015-12-16 09:54:19.644 OC_06_02[7083:253673] age = 25

2015-12-16 09:54:19.644 OC_06_02[7083:253673] name2 = Rick

2015-12-16 09:54:19.645 OC_06_02[7083:253673] name1 = Rick

2015-12-16 09:54:19.645 OC_06_02[7083:253673] name3 = Rick

2015-12-16 09:54:19.645 OC_06_02[7083:253673] address = GZ

2015-12-16 09:54:19.646 OC_06_02[7083:253673] key = name2

2015-12-16 09:54:19.646 OC_06_02[7083:253673] key = name1

2015-12-16 09:54:19.647 OC_06_02[7083:253673] key = name3

Program ended with exit code: 0



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