// NSDictionary
//创建不可变字典对象
//字典对象中的元素都是键值对
//key:value
//字典中的元素没有顺序
//NSMutableDictionary
//创建可变字典对象,继承于NSDictionary;
//可以使用所有的不可变字典类中的方法
//对于可变字典对象,可以进行添加修改删除操作
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建一个不可变对象
NSDictionary *dict = @{@"one":@"1", @"two":@"2", @"three":@"3",@"four":@"4"};
NSLog(@"%@", dict);
}
//用出入的键值对创建字典对象
NSDictionary *dict1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"9",@"nine",@"8",@"eight",@"7",@"seven", nil];
NSLog(@"dict1 = %@", dict1);
//
NSDictionary *dict2 = [[NSDictionary alloc] initWithDictionary:dict1];
NSLog(@"dict2 = %@",dict2);
//类方法创建字典对象
//创建空的字典对象
NSDictionary *dict5 = [NSDictionary dictionary];
NSLog(@"%@", dict5);
NSDictionary *dict6 = [NSDictionary dictionaryWithObjectsAndKeys:@"5",@"five",@"6",@"six",@"7",@"seven", nil];
NSLog(@"dict6 = %@", dict6);
NSDictionary *dict7 = [NSDictionary dictionaryWithDictionary:dict2];
NSLog(@"dict7 = %@", dict7);
NSInteger count = [dict1 count];
NSLog(@"count = %li", count);
//通过Key获取字典中Key对应的值
id obj = [dict1 objectForKey:@"seven"];
NSLog(@"obj = %@", obj);
//获取所有的key
NSArray *keyArray = [dict1 allKeys];
NSLog(@"keyArray = %@", keyArray);
//获取所有的值
NSArray *valueArray = [dict1 allValues];
NSLog(@"valueArray = %@", valueArray);
//判断两个字典对象是否相等
BOOL ret = [dict1 isEqualToDictionary:@{@"one":@"1",@"two":@"2",@"three":@"3"}];
if(ret) {
NSLog(@"字典对象相等");
}
else {
NSLog(@"字典对象不相等");
}
//字典的遍历
//枚举器法
NSEnumerator *keyEnumerator = [dict1 keyEnumerator];
id obj2 = nil;
while (obj2 = [keyEnumerator nextObject]) {
NSLog(@"key = %@ value = %@", obj2, [dict1 objectForKey:obj2]);
}
//快速枚举法
for(id obj3 in dict1) {
NSLog(@"快速枚举法:key = %@ value = %@", obj3, [dict1 objectForKey:obj3]);
}
return 0;
}