Foundation中的字典是由鍵-值對組成的資料集合,好比java中的Map,在字典對象中key值必須是唯一的,另外字典對象中的鍵和值都不能為nil。,如果要在字典對象中表示一個空值,可以用NSNull對象(這裡主要指值value)。字典對象也可分為不可變字典和可變字典。
1、不可變字典
NSNumber *num1 = [NSNumber numberWithInt:5]; NSNumber *num2 = [NSNumber numberWithInt:10]; NSNumber *num3 = [NSNumber numberWithInt:15]; //初始化一個字典 NSDictionary *dictionary = [NSDictionary dictionaryWithObject:num1 forKey:@"num"]; //通過鍵擷取值 NSObject *object = [dictionary objectForKey:@"num"]; NSDictionary *moreNum = [NSDictionary dictionaryWithObjectsAndKeys:num1,@"num1", num2,@"num2",num2,@"num3",nil]; //將字典對象的key轉化成一個枚舉對象,用於遍曆 NSEnumerator *enumerater = [moreNum keyEnumerator]; //擷取所有的鍵 NSArray *keyArray = [moreNum allKeys]; //擷取所有的值 NSArray *valueArray = [moreNum allValues]; //建立一個新字典,新字典包含其他字典 NSDictionary *newDic = [NSDictionary dictionaryWithDictionary:dictionary]; //擷取字典數量 NSInteger *theNum = [newDic count];
2、可變字典NSMutableDictionary
同樣繼承自NSDictionary,所以NSDictionary中的所有方法都適用於他
//建立一個可變字典 NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:num1,@"num1", num2,@"num2",num2,@"num3",nil]; //向可變字典對象中加入整個字典 NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"nihao" forKey:@"hello"]; [mDic addEntriesFromDictionary:dic2]; //向可變字典中追加一個索引值對 [mDic setValue:@"jimGreen" forKey:@"name"]; //遍曆對象,取資料 for(id key in mDic){ id obj = [mDic objectForKey:key]; NSLog(@"%@",obj); }