装箱和拆箱

C的基本类型使用NSNumber

装箱        NSNumber *ageNumber = [NSNumber numberWithInt:23];

              NSNumber *ageNumber2 = @23;

      

拆箱        int age = [ageNumber intValue];

        

C的复合类型结构用NSValue

创建

        CGPoint origin = CGPointMake(10, 10);

        CGSize size = CGSizeMake(20, 20);

        CGRect rect = CGRectMake(10, 10, 20, 20);

访问具体的变量

        CGFloat x = rect.origin.x;

        CGFloat y = rect.origin.y;

        CGFloat width = rect.size.width;

        CGFloat height = rect.size.height;

装箱

        NSValue *rectV = [NSValue valueWithRect:rect];

        NSValue *pointV = [NSValue valueWithPoint:origin];

        NSValue *sizeV = [NSValue valueWithSize:size];

拆箱        

        CGRect rect1  = [rectV rectValue];

        NSLog(@"%@", rectV);

 

-----------ps------------------------------------------------------------

         struct CGPoint {

            CGFloat x;

            CGFloat y;

         };

         struct CGSize {

         CGFloat width;

         CGFloat height;

         };

         struct CGRect {

         CGPoint origin;

         CGSize size;

         };

 

原文地址:https://www.cnblogs.com/huoran1120/p/5072578.html