Objective-C NSSetNSMutableSet以及CountedSet
?
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;
?
}
?
轉載于:https://www.cnblogs.com/why2wm/p/4418398.html
總結
以上是生活随笔為你收集整理的Objective-C NSSetNSMutableSet以及CountedSet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 2516 (Fabonacci
- 下一篇: 4月12日 webform基本控件