NSNumber 和 NSDate 和NSValue 和 NSSet :
NSNumber :
//专门包装数据类型,把他们存储为对象
NSNumber *intN =[[NSNumber alloc]initWithInt:5];
NSLog(@"%@",intN);
NSNumber *floatN=[[NSNumber alloc]initWithFloat:5.0];
NSLog(@"%@",floatN);
NSNumber *doubleN=[[NSNumber alloc]initWithDouble:9.23];
NSLog(@"%@",doubleN);
NSNumber *charN=[[NSNumber alloc]initWithChar:'K'];
//把对象转化为相对应的数据类型
char c = [charN charValue];
NSLog(@"%c",c);
int a=[intN intValue];
NSLog(@"%i",a);
float f=[floatN floatValue];
NSLog(@"%f",f);
double d=[doubleN doubleValue];
NSLog(@"%f",d);
//判断两个对象是否相等
//isEqualToNumber对象比较,只是比较值是否相等。
NSNumber *intN1=[[NSNumber alloc]initWithInt:5];
if ([intN isEqualToNumber:intN1]) {
NSLog(@"相等");
}
else
NSLog(@"不相等");
//判断两个对象是否相等,数据类型可以不同,比较值相等。枚举类型返回值就是-1,0,1三种
//compare
if ([intN compare:floatN]== NSOrderedAscending) {
NSLog(@"<");
}else if ([intN compare:floatN] == NSOrderedSame)
NSLog(@"=");
else
NSLog(@">");
//isEqualToValue对象比较 ,数值和类型都想等返回YES
if ([intN isEqualToValue:floatN]){
NSLog(@"相等");
}
else
NSLog(@"不相等");
//=============================================
NSDate 包装时间,把日期,时间包装成oc对象
//创建日期对象
NSDate *date1=[NSDate date];
//打印当前时间(取得是0时区的时间,格林威治时间,也叫世界时间,北京是东八区,所以和北京时间相差8小时)
NSLog(@"%@",date1);
//创建一个date2,比 date1要晚五秒钟,默认是 秒 。
NSDate *date2=[NSDate dateWithTimeInterval:5 sinceDate:date1];
NSLog(@"%@",date2);
//date2和1970年相差多少秒,返回值是double型的
NSTimeInterval s1= [date2 timeIntervalSince1970];
NSLog(@"%f",s1);
//两个时间对象相比,相差多少秒,[date1 timeIntervalSinceDate:date2];
NSLog(@"%f", [date1 timeIntervalSinceDate:date2]);
//把date转换成字符串
NSDate *date3=[NSDate date];
NSDateFormatter *formater=[[NSDateFormatter alloc]init];
/*
y :年 M :月 d: 日
h (H): 时 m : 分 s :秒
如果时12小时是:h,如果时24小时的话是 :H
2014-12-12 1:1:1
formater.dateFormat=@"yyyy/MM/dd HH:mm:ss";
NSString *dateStr3=[formater stringFromDate:date3];
//打印出的是北京时间
NSLog(@"%@",dateStr3);
//把字符串转化成 date
NSString *str4=@"2012/12/12 1:12:12";
NSDateFormatter *formater1=[[NSDateFormatter alloc]init];
//打印出来是世界时间
formater1.dateFormat=@"yyyy/MM/dd HH:mm:ss";
NSDate *date4=[formater1 dateFromString:str4];
NSLog(@"%@",date4);
//比较两个日期的早晚
NSDateFormatter *formater5=[[NSDateFormatter alloc]init];
formater5.dateFormat=@"yyyy/MM/dd HH:mm:ss";
NSString *str5=@"2012/12/12 1:12:12";
NSString *str6=@"2012/12/12 1:12:13";
NSDate *date51=[formater5 dateFromString:str5];
NSDate *date52=[formater5 dateFromString:str6];
//比较两个日期是否相同
[date51 isEqualToDate:date52];
//比较
if ( [date51 compare:date52]==NSOrderedAscending) {
NSLog(@"NSOrderedAscending 升序: date51比date52要早");
}else if([date51 compare:date52]==NSOrderedSame){
NSLog(@"NSOrderedSame 相同");
}else if([date51 compare:date52]==NSOrderedDescending){
NSLog(@"NSOrderedDescending 降序:date51比date52要晚");
}
//NSValue 包装结构体,变成oc对象
//把结构体包装成value对象
CGPoint point=CGPointMake(10, 10);
NSValue *value=[NSValue valueWithPoint:point];
NSArray *ary=@[value];
NSLog(@"point==%@",ary);
//把value对象包装成结构体
NSPoint point1=[value pointValue];
NSLog(@"%lf %lf",point1.x,point.y);
/*
NSSet 集合,存储oc对象,int float double char,枚举,结构体,都不可以忘里面存储,必须包装成对象存进去。
NSSet 没有顺序,NSArray 有顺序的
相同:1:都用来存放oc对象
2:都不可以存放基本数据类型,int float double char,枚举,结构体。
3:本身都是不可变的,但是都有一个可变的子类
4:
区别: 1:NSArry是有顺序的,NSSet是没有顺序的
2:NSSet里面的元素是不可以重复的。
*/
//创建一个空的set,不可以添加元素。
NSSet *set1=[NSSet set];
//创建一个set集合,里面有一个元素。
NSSet *set2=[NSSet setWithObject:@"abc"];
//创建一个集合,里面放多个元素
Car *car1=[[Car alloc]init];
Car *car2=[[Car alloc]init];
NSSet *set3=[NSSet setWithObjects:car1,car2,@"ccc",nil];
//获得set 中的元素个数
NSUInteger count =set3.count;// [set count];
//打印set,没有顺序的打印,其中的元素位置不确定。
NSLog(@"%@,%lu",set3,count);
//获取set中全部元素
NSArray *ary1=[set3 allObjects];
NSLog(@"%@",ary1);
//取其中的一个元素,集合没有顺序。随机取一个对象即可
[set3 anyObject];
//集合中是否包含某个元素
if ([set3 containsObject:@"ccc"]) {
NSLog(@"set中包含该对象");
}
else{
NSLog(@"set中包含该对象");
}
//======================================================
//NSMutableSet 可变的集合
//初始化可变的集合
NSMutableSet * set4=[NSMutableSet set];
//添加元素
[set4 addObject:@"oc"];
//添加一个数组中的元素添加到集合中
[set4 addObjectsFromArray:@[@"jereh",@"ios"]];
NSLog(@"%@",set4);
//删除元素
//清空和某个固定对象
[set4 removeObject:@"ios"];
NSLog(@"%@",set4);
[set4 removeAllObjects];
NSLog(@"%@",set4);
//遍历set,for循环 -快速循环
NSMutableSet *set5=[NSMutableSet setWithObjects:@"ios",@"oc",@"c",nil];
for(id obj in set5){
NSLog(@"%@",obj);
}