Objective-C 词典与集合

来源:互联网 发布:新纪元取数软件 编辑:程序博客网 时间:2024/06/06 01:47

词典(dictionary)是由键——对象对组成的数据集合。在与词典中找单词定义一样,可以通过对象的键从Objective-c词典中获取需要的值(即那个对象)。词典中的键必须是单值的,通常他们是字符串,但也可以是其他对象类型。和键关联的值可以是任意对象类型,但不能是nil。

//1.dictionary  创建一个空字典NSDictionary * dic = [NSDictionary dictionary];//2. 创建并初始化//  dictionaryWithObject:(id)forkey:(id)NSDictionary * dic1 = [NSDictionary dictionaryWithObject:@"Apple" forKey:@"Android"];NSLog(@"%@", dic1);//3.创建并返回一个字典。// dictionaryWithObjects:forkeysNSArray * keys = [NSArray arrayWithObjects:@"name", @"sex", @"age", nil];NSArray * values = [NSArray arrayWithObjects:@"Apple", @"女", [NSNumber numberWithInt:25], nil];NSDictionary * dic3 = [NSDictionary dictionaryWithObjects:values forKeys:keys];NSLog(@"%@", dic3);//4.使用键-对象对{key1,obj1}、{key2,obj2}...创建词典//  dictionaryWithObjectsAndKeysNSDictionary * dic4 = [NSDictionary dictionaryWithObjectsAndKeys:                       @"apple", @"name",                       @25,      @"age", nil];NSLog(@"%@", dic4);//5. @ 自变量NSDictionary * dic5 = @{@"name": @"Apple", @"age": @25, @"sex": @"女"};NSLog(@"@ = %@", dic5);// allkeys 返回一个数组包含词典中所有的键NSLog(@"allkeys:%@", [dic5 allKeys]);//allkeysForObject: 返回一个数组,包含所有对应到给定对象的关键字。NSArray * aa = @[@"name",@"apple",@"winphone",@"apple"];NSLog(@"aaaaaaa%@", [dic5 allKeysForObject:aa]);//allValues:返回一个数组包含词典中所有的值NSLog(@"allValues:%@", [dic5 allValues]);//objectForKey:返回指定 key 的 value,若没有这个 key 返回 nil.NSLog(@"%@", [dic5 objectForKey:@"name"]);//valueForKey 同样是返回指定 key 的 value。NSLog(@"%@", [dic5 valueForKey:@"name"]);//objectsForKeys:< #(NSArray *)#> notFoundMarker:< #(id)#>// 根据给定的键值数组返回对应的值,如果找不到则返回 notFoundMarkerNSLog(@"%@", [dic5 objectsForKeys:@[@"Name", @"Age", @"Sex"] notFoundMarker:@"NOT"]);//count:返回字典中的记录数NSLog(@"count:%zi", [dic5 count]);//遍历字典中的keyNSLog(@"遍历字典\n\n");//迭代器遍历NSEnumerator * keyEnum = [dic5 keyEnumerator];id key = nil;while (key = [keyEnum nextObject]) {    NSLog(@"%@", key);}//快速遍历for (id key in dic5) {    NSLog(@"%@", key);}//遍历字典中的valuefor (id key in dic5) {    NSLog(@"%@", [dic5 valueForKey:key]);}//block遍历[dic5 enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {     NSLog(@"%@ = %@", key, values); }];//可变字典NSMutableDictionary * dic2 = [NSMutableDictionary dictionary];//setObject: forKey: 添加value与key,如果key存在则替换该值[dic2 setValue:@"HH" forKey:@"100"];[dic2 setValue:@"kj" forKey:@"哈哈"];NSLog(@"%@", dic2);//removeObjectForKey 删除词典中指定key对应的记录[dic2 removeObjectForKey:@"100"];NSLog(@"%@", dic2);//removeAllObjects 删除词典中的所有记录[dic2 removeAllObjects];NSLog(@"%@", dic2);NSDictionary * diction1 = [NSDictionary dictionaryWithObjectsAndKeys:                           @"Apple", @"Name",                           @15, @"Age",nil];NSDictionary * diction2 = [NSDictionary dictionaryWithObjectsAndKeys:                           @"Android", @"Name",                           @28, @"Age",nil];//isEqualToDictionary 比较两个字典if([diction1 isEqualToDictionary:diction2]){    NSLog(@"diction1 equal diction2");}else{    NSLog(@"diction1 not equal diction2");}// writeToFile 把字典写入文件(xml格式)NSString * path = @"/Users/simman/diction1.xml";[diction1 writeToFile:path atomically:YES];//dictionaryWithContentsOfFile 读取一个文件返回给新的字典对象NSDictionary *newDic = [NSDictionary dictionaryWithContentsOfFile:path];
0 0
原创粉丝点击