ios笔记-NSSet
// // main.m // NSSet // // Created by Passer-by on 15-3-23. // Copyright (c) 2015年 MAC. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* NSSet和NSArray的对比 1> 共同点 * 都是集合,都能存放多个OC对象 * 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举) * 本身都不可变,都有一个可变的子类 2> 不同点 * NSArray有顺序,NSSet没有顺序 */ NSSet *set1 = [NSSet setWithObjects:@"a", @"b", @"c", @"d", nil]; NSSet *set2 = [[NSSet alloc] initWithObjects:@"1", @"2", @"3", nil]; NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil]; NSSet *set3 = [NSSet setWithArray:array]; NSLog(@"set1 :%@", set1); NSLog(@"set2 :%@", set2); NSLog(@"set3 :%@", set3); //获取集合个数 NSLog(@"set1 count :%d", set1.count); //以数组的形式获取集合中的所有对象 NSArray *allObj = [set2 allObjects]; NSLog(@"allObj :%@", allObj); //获取任意一对象 NSLog(@"anyObj :%@", [set3 anyObject]); //是否包含某个对象 NSLog(@"contains :%d", [set3 containsObject:@"obj2"]); //是否包含指定set中的对象 NSLog(@"intersect obj :%d", [set1 intersectsSet:set3]); //是否完全匹配 NSLog(@"isEqual :%d", [set2 isEqualToSet:set3]); //是否是子集合 NSLog(@"isSubSet :%d", [set3 isSubsetOfSet:set1]); NSSet *set4 = [NSSet setWithObjects:@"a", @"b", nil]; NSArray *ary = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil]; NSSet *set5 = [set4 setByAddingObjectsFromArray:ary]; NSLog(@"addFromArray :%@", set5); NSMutableSet *mutableSet1 = [NSMutableSet setWithObjects:@"1", @"2", @"3", nil]; NSMutableSet *mutableSet2 = [NSMutableSet setWithObjects:@"a", @"2", @"b", nil]; NSMutableSet *mutableSet3 = [NSMutableSet setWithObjects:@"1", @"c", @"b", nil]; //集合元素相减 [mutableSet1 minusSet:mutableSet2]; NSLog(@"minus :%@", mutableSet1); //只留下相等元素 [mutableSet1 intersectSet:mutableSet3]; NSLog(@"intersect :%@", mutableSet1); //合并集合 [mutableSet2 unionSet:mutableSet3]; NSLog(@"union :%@", mutableSet2); //删除指定元素 [mutableSet2 removeObject:@"a"]; NSLog(@"removeObj :%@", mutableSet2); //删除所有数据 [mutableSet2 removeAllObjects]; NSLog(@"removeAll :%@", mutableSet2); } return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。