標籤:
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;
}
Objective-C NSSet&NSMutableSet以及CountedSet