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

本文介绍如何在Objective-C中遍历字典与集合,包括使用不同方法遍历字典中的键和值,比较和操纵NSSet集合,以及遍历NSSet集合中的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值