#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //NSDictionary 不可变字典,使用键值对来存储数据,与NSArray不同,NSDictionary与NSset都是无序集合 //key 和 value 成对出现 //@"" @1 @(1) @[] @{} //方法一:常用,键值对较清晰 NSDictionary *dic1 = @{@"key1" : @"value1", @"key2" : @"value2", @"key3" : @"value3", @"key4" : @"value4", @"key5" : @"value5", @"key6" : @"value6", @"key7" : @"value7"}; //方法二、三不清晰,不利于读代码 NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil]; NSDictionary *dic3 = [[NSDictionary alloc] initWithObjects:@[@"value1", @"value2"] forKeys:@[@"key1", @"key2"]]; #pragma mark - NSDictionary读取 NSString *value1 = dic1[@"key1"];//取key1对应的value值 NSString *value2 = [dic1 objectForKey:@"key9"];//字典取值找不到的时候输出 (null) //valueForKey是键值编码(KVC)的方法,不属于字典的方法,不要使用 NSLog(@"%@", dic1); NSLog(@"%@ %@", value1, value2); NSArray *allKeys = [dic1 allKeys]; NSArray *allValues = [dic1 allValues]; //遍历整个字典(较少使用) for (NSUInteger i = 0; i < dic1.count; i++) { NSString *key = allKeys[i]; NSLog(@"%@ : %@", key, dic1[key]); } //从头到尾遍历所有key值(forin) for (NSString *key in dic1) { NSLog(@"%@ : %@", key, dic1[key]); //break;//可用break; } //PS:NSArray遍历 NSArray *array = @[@"1", @"4", @86]; for (id value in array) {//遍历array中的所有类型值 NSLog(@"%@", value); } #pragma mark - NSMutableDictionary //初始化 NSMutableDictionary *mutableDic1 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", nil]; NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionaryWithDictionary:mutableDic1]; //新增 [mutableDic1 setObject:@"value2" forKey:@"key2"]; //删除 // [mutableDic1 removeObjectForKey:@"key2"]; // [mutableDic1 removeAllObjects]; //修改 [mutableDic1 setObject:@"333" forKey:@"key1"];//字典中的key值不能重复,所有333会覆盖key1,相当于修改 //查找 NSString *string = mutableDic1[@"key2"];//没有下标,只能通过key来操作 #pragma mark - NSSet //完全无序集合 //初始化类似数组,分为可变和不可变,元素不能重复,常用来清除其他集合中的重复元素 } return 0; }
NSDictionary方法
猜你喜欢
转载自yuandaimeng.iteye.com/blog/2200413
今日推荐
周排行