NSNumber与NSValue

来源:互联网 发布:招风耳矫正知乎 编辑:程序博客网 时间:2024/05/29 10:26

Main.m

int main(int argc, const char * argv[]){/*____________________NSNumber的使用______________________________*/        //1.创建NSNumber(包装基本数据类型)    NSNumber *intNum = [NSNumber numberWithInt:100];   //将整型数据封装成number对象    NSNumber *longNum = [NSNumber numberWithLong:12345678];    NSNumber *floatNum = [NSNumber numberWithFloat:3.14f];    NSNumber *charNum = [NSNumber numberWithChar:'a'];    NSNumber *boolNum = [NSNumber numberWithBool:FALSE];    //添加到数组中    NSArray *arrary = @[intNum,longNum,floatNum,charNum,boolNum];    NSLog(@"arrary:%@",arrary);        //2.解包    int intValue = [intNum intValue];    long longValue = [longNum longValue];    float floatValue = [floatNum floatValue];    char charValue = [charNum charValue];    BOOL boolValue = [boolNum boolValue];        //3.优化语法//    NSNumber *intNum = [NSNumber numberWithInt:100];    //等价于    NSNumber *intNum1 = @100;    NSNumber *floatNum1 = @3.14;    NSNumber *boolNum1 = @YES;    NSNumber *charNum1 = @'a';        /*____________________NSValue的使用______________________________*/        //NSValue可以对结构体进行包装,NSValue是NSNumber的父类        //1.系统中已经存在的结构体    NSRange range = {1,3};    //封装成对象    NSValue *rgValue = [NSValue valueWithRange:range];    //解包    NSRange rg = [rgValue rangeValue];    NSLog(@"rg.location:%ld  rg.length:%ld",rg.location,rg.length);        NSPoint point = {2.3,3.5};    NSValue *pValue = [NSValue valueWithPoint:point];    NSPoint p = [pValue pointValue];        //2.对自定义结构体封装和解包        //定义结构体    struct WXPoint {        float x;        float y;    };        struct WXPoint point1 = {5.6,7.8};        //封装    NSValue *wxValue = [NSValue value:&point1 withObjCType:@encode(struct WXPoint)];        //解包    struct WXPoint point2;    [wxValue getValue:&point2];    NSLog(@"x:%.2f  y:%.2f",point2.x,point2.y);    /*____________________NSNUll的使用______________________________*/    //    NSArray *nullArrary = @[@1,nil,@2,@3];    //错误,nil不能存放在数组中    NSNull *null1 = [NSNull null];    NSNull *null2 = [NSNull null];        NSArray *nullArrary = @[@1,null1,@2,null2,@3];  //在数组中可以存在NSNull类型的对象    NSLog(@"%@",nullArrary);    NSLog(@"%ld",nullArrary.count);    //    for (id item in nullArrary) {//        if (item != [NSNull null]) {//            continue;//        }//        NSLog(@"%ld",[nullArrary indexOfObject:item]);//    }        for (int i=0; i<nullArrary.count; i++) {        id item = [nullArrary objectAtIndex:i];        if (item == [NSNull null]) {            NSLog(@"%d",i);        }    }        return 0;}


0 0
原创粉丝点击