一、NSNumber类
1、作用:NSNumber能够将c语言中的基本数据类型转化为oc中的对象
2、实例:
//1.用对象方法将整型数据转化为oc中对象(比如整型,其他基本数据类型方法一样)
NSNumber *intNum = [[NSNumberalloc]initWithInt:5];
//2.用类方法
NSNumber *intNum1 = [NSNumbernumberWithInt:5];
//3.判断两个对象是否相等,其返还值是bool类型
int result = [intNumisEqualToNumber:intNum1];
NSLog(@"%d",result);//.将判断结果打印
//4.比较,其返还值类型为
NSComparisonResult{NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};
NSComparisonResult nsResult = [intNumcompare:intNum1];
if(nsResult ==NSOrderedSame)
{
NSLog(@"intNum = intNum1");
}
elseif (nsResult ==NSOrderedAscending)
{
NSLog(@"intNum < intNum1");
}
elseNSLog(@"intNum > intNum1");
//5.如果将其还原为基本数据类型
int a = [intNum1intValue];
二、NSValue(其实是NSNumber的父类)
作用:将复杂的数据类型转化为对象(比如结构体,指针)
实例:
1、
//1.转化
CGPoint point1;
NSValue *pointValue1 = [NSValuevalueWithPoint:point1];
//2.还原
CGPoint newPoint1 ;//.先定义新的变量来接受还原的数据
[pointValue1getValue:&newPoint1];
//.指针如何转化
int c =11;
int *new = &c;
//.参数1是指针的地址&new,参数2指针的@encode(指针类型)
NSValue *ne = [NSValuevalue:&newwithObjCType:@encode(int*)];
int * b ;//定义一个新的指针
[negetValue:&b];
三、NSSet(集合)和NSMutableSet NSIndexSet
//.NSSet(集合)与NSArry的区别是NSSet是无序的,数组是有序的
NSSet *set = [[NSSetalloc ]initWithObjects:@"yangjie",@"wangrong",@"goubi",@"rilgou",nil];
//.NSSet中得元素可以是任意对象,它也是存贮对象的地址
// NSSet *set1 = [NSSet setWithObjects:<#(id), ...#>, nil]
NSLog(@"%@",set);
NSLog(@"%lu",[setcount]);(获取集合的元素的个数)
BOOL ret = [setcontainsObject:@"yangjie"];
NSLog(@"%d",ret);
//1.判断两个集合是否相等
// [set isEqual:<#(id)#>]
//2.判断某个集合是否是其子集合
// [set isSubsetOfSet:<#(NSSet *)#>]
//3.集合的遍历
NSEnumerator *rator = [setobjectEnumerator];
id obj;
while(obj=[ratornextObject])
{
NSLog(@"%@",obj);
}
//.集合的初始化,有多种方法
// NSSet *set1 = [[NSSet alloc]initWithObjects:<#(id), ...#>, nil]
//_______NSMutableSet_________
NSMutableSet *set1 = [[NSMutableSetalloc]init];
[set1addObject:@"one"];
[set1 addObject:@"two"];//.如果添加元素相等,实际上只保留一个
NSLog(@"%@",set1);
//2.shan出元素
[set1removeObject:@"one"];
NSLog(@"%@",set1);
NSSet *set2 = [[NSSetalloc]initWithObjects:@"dfd",@"dfsd",@"dfsfs",nil];
[set1unionSet:set2];//将set2中得集合全部添加到set1中
NSLog(@"%@",set1);
[set1minusSet:set2];//.将set2从set1中删除
NSLog(@"delete以后%@",set1);
//__________NSIndexset___________指数集合(索引)
NSIndexSet *indexset = [[NSIndexSetalloc]initWithIndexesInRange:NSMakeRange(2,2)];
NSArray *array = [[NSArrayalloc]initWithObjects:@"qwer",@"fsdfs",@"fads",@"fsfdf",nil];
NSArray *new = [arrayobjectsAtIndexes:indexset];
NSLog(@"%@",new);
NSString *str =@"hello world";
//.将字符串对象转换为nsdata字节流
NSData *data =
[str dataUsingEncoding:NSUTF8StringEncoding];
//.将其还原
NSString *newStr = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];
NSLog(@"%@",newStr);