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];