NSSet
//和NSArray的区别:他是无序的
NSMutableSet:可变的
初始化的方法:NSSet *s = [NSSet setWithObjects:id……,nil];
取出的方法:[s anyObject]//随机拿出一个对象
NSMutableSet:可变的
初始化:NSMutableSet *s = [NSMutableSet set];
[s addObject:id];
[s removeObject:id];
NSDictionary
//存的都是键值对
初始化方式:
NSDictionary *dict= [NSDictionary dictionaryWihObject:id forKey:key]
NSDictionary*dict= [NSDictionary dictionaryWihObjects:NSArray forKey:NSArray]
NSDictionary*dict=[NSDictionary dictionaryWihObject:sAndKeys :id……,nil]//id指的是先值后建依次存储
特性:NSDictionary*dict = @{key:值,……}//快速初始化的方式,一般都用新特性来初始化
方法:[dict objectForKey:id];//根据健取出对应的对象
方法新特性:id obj = dict[@”key”];//通过key取出值的方法
NSMutableDictionary:可变的字典
NSMutableDictionary*dict = [NSMutableDictionary dictionary];
添加键值对:
[dict setObject:值 forKey:key](字典也是无序的)
当再次给同样的key设置一个值的时候会覆盖上次的值
移除键值对:[dict removeObjectForKey:id];
打印字典:打印的是所有的键值对
快速访问字段元素:字典名[key];
字典的遍历:
利用block方式较为方便:
[dict enumerateAndObjectsUsingBlock:^(id key, idobj, BOOL *stop) //stop只要变为YES就停止遍历
{
NSLog(@“%@--%@”,key,obj);
}]
NSNumber:将基本数据类型转化成对象
快速包装的方法:@10,@YES,@‘A’
如果遇到:int age = 10;
我们不能写成@age,而必须写成@(age)。
将NSNumber对象转化成基本数据类型的方法:
NSNumber *n = [NSNumber numberWithInt:10];
[n intValue];
不同数据类型只需修改变量类型即可。
NSNumber之所以能包装基本数据类型为对象是因为它继承了NSValue。