NSSet说实话,对这个类的应用,还不知道到底什么时候会用到,先过一遍脑子吧,以后有需要用到的时候,不至于陌生!
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//创建4个NSNumber对象
NSNumber *obj1 = [NSNumber numberWithInt:10];
NSNumber *obj2 = [NSNumber numberWithInt:15];
NSNumber *obj3 = [NSNumber numberWithFloat:10.5];
NSNumber *obj4 = [NSNumber numberWithChar:‘b‘];
//NSSet 初始化方法:initWithObjects:后面需要填写对象,每个对象用,号隔开,常用的有两个anyObject 和containsObject
NSSet *aSet = [[NSSet alloc] initWithObjects:obj1,obj2,obj3,obj4,obj1, nil];//集合不允许重复,多的obj1写进入也不会存入的.
//获取元素个数方法
NSInteger count = [aSet count];
NSLog(@"%ld",count);
//获取对象方法
NSLog(@"====获取对象方法====");
NSArray *array = [aSet allObjects];
NSLog(@"%@ %@",array,aSet);
//obj4中的b不是直接打印b,而是打印数值的.
//anyObject采用的是便利取值法
NSLog(@"============");
NSNumber *number = [aSet anyObject];
NSLog(@"%@",number);
//便利 所有的NSNumber的对象
for (NSNumber *num in aSet) {
NSLog(@"%@",num);
}
//判断集合中是否包含某个对象
BOOL isContain = [aSet containsObject:@"aa"];
if (isContain) {
NSLog(@"包含");
}else
{
NSLog(@"不包含");
}
#pragma mark - NSMutableSet
NSMutableSet *bSet = [[NSMutableSet alloc] initWithObjects:obj1,obj2, nil];
//添加 方法
[bSet addObject:obj3];
[bSet addObject:obj4];
[bSet addObject:[NSNumber numberWithInt:100]];
NSLog(@"%@",bSet);
//删除 某个
[bSet removeObject:[NSNumber numberWithInt:100]];
NSLog(@"%@",bSet);
//删除 全部
[bSet removeAllObjects];
NSLog(@"都删除了 %@",bSet);
#pragma mark - NSCountedSet
NSLog(@"======NSCountedSet=======");
//NSCountedSet 子类是扩充原有类的方法之一
NSCountedSet *cSet = [[NSCountedSet alloc] initWithObjects:obj1,obj1,obj1, nil];
//获取个数 CountForObject
NSInteger count1 = [cSet countForObject:obj1];
NSLog(@"%ld",count1);
//在NSSet方法中我们提到,重复添加的对象是不存储的,子类的NSCountedSet 是可以弥补NSSet的不足,可以记录对象重复出现的次数
}
return 0;
}