标签:
在Cocoa Foundation中的NSSet和NSMutableSet ,和NSArray功能性质一样,用于存储对象属于集合。但是NSSet和NSMutableSet是无序的, 保证数据的唯一性,当插入相同的数据时,不会有任何效果。
NSSet 初始化及常用操作
#import "AppDelegate.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSSet *students = [NSSet setWithObjects:@"小明", @"小辉", @"大雄", nil]; NSSet *teachers = [[NSSet alloc] initWithObjects:@"校长", @"副校长", @"政教主任", nil]; NSArray *array = [NSArray arrayWithObjects:@"小明", @"小辉", @"大雄",@"小李", nil]; NSSet *students_2 = [NSSet setWithArray:array]; NSLog(@"students :%@", students); NSLog(@"teachers :%@", teachers); NSLog(@"students_2 :%@", students_2); //获取集合students包含对象的个数 NSLog(@"students count :%lu", (unsigned long)students.count); //以数组的形式获取集合teachers中的所有对象 NSArray *allTeacher = [teachers allObjects]; NSLog(@"allObj :%@", allTeacher); //获取teachers中任意一对象 NSLog(@"anyObj :%@", [teachers anyObject]); //teachers是否包含某个对象 if ([teachers containsObject:@"副校长"]) { NSLog(@"teachers中有副校长"); } //是否包含指定set中的对象 if ([students_2 intersectsSet:students]) { NSLog(@"intersects"); } //是否完全匹配 if ([students_2 isEqualToSet:students]) { NSLog(@"完全匹配"); }else{ NSLog(@"完全匹配? NO。。。。。。。"); } //是否是子集合 if ([students isSubsetOfSet:students_2]) { NSLog(@"students isSubsetOf students_2"); } //迭代器遍历 NSEnumerator *enumerator = [teachers objectEnumerator]; NSObject *teacher = [enumerator nextObject]; while (teacher != nil) { NSLog(@"teachers中的数据: %@",teacher); teacher = [enumerator nextObject]; } //快速枚举遍历 for (NSObject *teacher in teachers) { NSLog(@"teachers中的数据: %@",teacher); } return YES; } @end
NSMutableSet 初始化及常用操作
#import "AppDelegate.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSMutableSet *mutableStudent = [NSMutableSet setWithObjects:@"F1", @"F2", @"F3", nil]; NSMutableSet *mutableTeacher = [NSMutableSet setWithObjects:@"B1", @"B2", @"B3", nil]; NSMutableSet *mutableStudent2 = [NSMutableSet setWithObjects:@"F1", @"F2", @"F3",@"F4", nil]; //集合元素相减 [mutableStudent2 minusSet:mutableStudent]; NSLog(@"mutableStudent2 minus mutableStudent:%@", mutableStudent2); //mutableStudent2只留下相等元素 [mutableStudent intersectSet:mutableStudent2]; NSLog(@"intersect :%@", mutableStudent2); //mutableStudent合并集合 [mutableStudent unionSet:mutableStudent2]; NSLog(@"union :%@", mutableStudent); //mutableTeacher删除指定元素 [mutableTeacher removeObject:@"好色仙人"]; NSLog(@"removeObj :%@", mutableTeacher); //mutableTeacher删除所有数据 [mutableTeacher removeAllObjects]; NSLog(@"removeAll :%@", mutableTeacher); return YES; } @end
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4623082.html
[Objective-C] 010_Foundation框架之NSSet与NSMutableSet
标签:
原文地址:http://www.cnblogs.com/superdo/p/4623082.html