1、NSSet的相关内容
a) NSSet和数组一样是数据容器
b) NSSet和数组的区别:
1) 数组是有序的 NSSet是无序的
2)数组可以容纳重复对象 NSSet不能
2、 创建方式:
1) 普通方法创建 NSSet *set1 = [[NSSet alloc] initWithObjects: ..., nil];
类方法创建 NSSet *set2 = [NSSet setWithObjects: ..., nil];
2)调用任意一个元素:[set anyObject];
点语法 set.anyObject;
a) 转成数组:NSArray * array = [set allObjects];
b) 判断是否存在某个元素:[set containsObject:id];
c) 可变集合--------->NSMutableSet *mySet = [NSMutableSet set];
添加元素:[mySet addObject: id];
添加数组:[mySet addObjectsFromArray: array];
d) 计数集合 (继承自NSMutableSet)
用法:NSUInteger counts = [countedSet countForObject:@"集合"];
e) 判断对象是否在NSSet中已经存在
BOOL isContain = [set containsObject:@"zh"];
3、NSDictionary的概念
a) 字典(NSDictionary)是由键—值对组成的数据容器, 通过键(key),访问对应值(value)
b) 字典中的元素是无序的
c) 字典中的key可以是任意类型,一般使用字符串作为一个元素的key。
1) 字典的创建 :
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
NSNumber *number = [NSNumber numberWithInt:99];
//alloc创建字典
NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:array,@"names" ,number,@"score", nil];
//类方法创建
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys :
array,@"names",number,@"score"];
2.向字典中添加元素
NSNumber *number = [NSNumber numberWithInt:99];
NSString *user = @"myName";
[dic setObject:number forKey:@"score"];
[dic setObject:user forKey:@"name"];
3.删除元素
//根据key,移除元素
[dic removeObjectForKey:@"names"];
[dic removeAllObjects];
3) 字典也可以用简单语句创建
NSDictionary *dic = @{@"my":array , @"score":number};
5、NSMutableDictionary不可变字典
1) NSMutableDictionary是可变字典,字典中存储的元素是可以修改的。
2) NSMutableDictionary继承于NSDictionary
1.创建可变字典
NSArray *array = [NSArray arrayWithObjects:@"you",@"and",@"me", nil];
NSMutableDictionary *dic = [[NSMutableDictionary alloc]
initWithObjectsAndKeys:array,@"names",
nil];
2.向字典中添加元素
NSNumber *number = [NSNumber numberWithInt:100];
NSString *user = @"zh";
[dic setObject:number forKey:@"score"];
[dic setObject:user forKey:@"name"];
3.删除元素
//根据key,移除元素
[dic removeObjectForKey:@"names"];
[dic removeAllObjects];
6、封装类
a) NSNumber类是用来封装基本数据类型的
b) NSValue可以封装任意类型值(结构体、指针,数组)
c) NSNull表示空类型