使用对象集合(通过Foundation框架使用OC处理字典,集合)

来源:互联网 发布:淘宝入驻费用多少钱 编辑:程序博客网 时间:2024/04/28 04:48

1.遍历字典

使用NSDictionary函数allValues将字典转换为数组,接下来就可以使用for-each循环了,此外还可以使用enumerateKeysAndObjectsUsingBlock:方法来处理字典中的每个对象

NSDictionary *dictionary = [[NSDictionary alloc] init];    for (NSString *s in [dictionary allValues]) {        NSLog(@"value: %@", s);    }    for (NSString *s in [dictionary allKeys]) {        NSLog(@"value: %@", s);    }    [dictionary enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {        NSLog(@"key = %@ and obj = %@",key,obj);    }];

2.比较集合

NSSet *set1 = [NSSet setWithObjects:@"A",@"B",@"C",@"D",@"E", nil];NSSet *set2 = [NSSet setWithObjects:@"D",@"E",@"F",@"G",@"H", nil]; // 如果想判断这两个集合是否包含重叠的对象(集合相交),那么可以使用intersectsSet:函数来返回布尔值BOOL setsIntersect = [set1 intersectsSet:set2];// 要判断某个集合包含的对象是否全部位于另一个集合中,可以使用inSubsetOfSet:函数BOOL set2IsSubset = [set2 isSubsetOfSet:set1];// 要想测试两个集合是否相等,可以使用isEqualToSet:函数BOOL set1IsEqualToSet2 = [set1 isEqualToSet:set2];// 如果想知道某个对象是否位于集合中,可以使用containsObject:函数BOOL set1ContainsD = [set1 containsObject:@"D"];

3.遍历集合

for (NSString *s in [set1 allObjects]) {        NSLog(@"value is : %@", s);    }[set1 enumerateObjectsUsingBlock:^(id  _Nonnull obj, BOOL * _Nonnull stop) {        NSLog(@"obj = %@", obj);    }];// 如果只想对每个对象执行单个动作(动作是方法,位于对象的类定义中),那么可以使用makeObjectsPerformSelector:方法[set1 makeObjectsPerformSelector:@selector(description)];

4.操纵集合内容

NSMutableSet *set = [[NSMutableSet alloc] init];[set addObject:@"Hello World"];[set removeObject:@"Hello World"];[set removeAllObjects];
0 0
原创粉丝点击