______________________________不可變字典________________________________________
數組:盛放對象的有序容器 index - 對象
例如: 0 -> @"one"
2 -> @"two"
......
字典:盛放對象的無需容器,鍵值對 鍵 - 值 ==>標示(字符串) - 對象
例如: key object
@"鍵" 對象
@"小明" @"60分"
......
//1.創建
//1.實例方法
NSDictionary *dic = [[NSDictionary alloc]init];
//2.類方法
NSIC提哦那容易*dic1 = [[NSDictionary]dictionary];
//3.通過鍵值對創建
//NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil];
NSObject *objc1 = [[NSObject alloc]init];
NSObject *objc2 = [[NSObject alloc]init];
NSObject *objc3 = [[NSObject alloc]init];
/*
@"叁" -> objc3
@"第一個" -> objc1
@"tow" -> objc2
*/
NSDictionary *dic2 = [[NSDictionary alloc]initWithObjectsAndKeys:objc1,@"第一個",objc2,@"tow",objc3,@"叁",nil];
//NSDictionary *dic2_ = [NSDictionary dictionaryWithObjectsAndKeys:(nonnull id),...,nil]
/*
1.字典打印在控制臺上,是以{}的形式輸出,多個鍵值對間使用';'相隔
2.形式是 鍵 = 值;
2.文字以Unicode編碼顯示 (可以在線轉換)
*/
NSLog(@"%@",dic2);
//4.快速創建 鍵:值,
NSDictionary *dic3 = @{@"a":objc1,@"b":bojc2,@"c":objc3};
NSLog(@"%@",dic3);
//5.通過字典創建 -> 相當于賦值
NSDictionary *dic4 = [[NSDictionary alloc]initWithDictionry:dic3];
//NSDictionary *dic4_ = [NSDictionary dictionaryWithDictionary:dic3];
//2.屬性
NSLog(@"count = %ld",[dic4 count]);
NSLog(@"count = %ld",dic4.count);
//2.屬性
//NSLog(@"count = %ld",[dic4 count]);
NSLog(@"count = %ld",dic4.count);
3.方法
//1.獲取字典中的對象
NSObject *objcB = [dic4 objectForKey:@"b"];
NSLog(@"%@",objcB);
//2.獲取所有的key??常用
NSArray *allkeys = [dic4 allKeys];
NSLo(@"%@",allkeys);
//3.獲取所有value
NSArray *allvalues = [dic4 allvalues];
NSLog(@"%@",allvalues);
//4.遍歷:展示容器內的所有數據
NSArray *keys = [dic4 allKeys];
for(int i = 0;i < dic4.count;i++)
{
NSString *key = [keys objectAtIndex:i];
/*_____________________________________________*/
NSLog(@"%@",[dic4 objectForKey:key]);
}
for(NSString *key in keys)
{
NSLog(@"%@",[dic4 objectForKey:])
}