2015.12.24 OC中的装箱

1.C语言的基本类型使用NSNumber(bool char int long float double)

  NSNumber *ageNumber = [NSNumber nuberWithInt:23];

  NSNumber *ageNumber = @23;

  拆箱:int age = [ageNumber intValue];

2.C语言的符合类型使用NSValue

  1.创建一个CGPoint

    表示一个点(x, y

      struct CGPoint {

        CGFloat x;

        CGFloat y;

      };

    CGPoint orgin = CGPointMake(10, 10);

  2.创建一个CGSize

    宽度和高度(width, height

             struct CGSize {

               CGFloat width;

               CGFloat height;

             };

    CGSize size = CGSizeMake(200, 300);

  3.创建一个CGRect

      一个视图在界面上的尺寸(矩形区域)

             struct CGRect {

               CGPoint origin;

               CGSize size;

             };

    CGRect rect = CGRectMake(10, 10, 200, 300);

    CGFloat x = rect.origin.x;

    CGFloat height = rect.size.height;

对结构体进行封装:NSValue *rectV = [NSValue valueWithRect:rect];

拆箱:      CGRect rect = [rectV rectValue];

对自定义的结构体进行封装:

  typedef struct{

    int age;

    char *name;

  }test;

  NSValue *temp = [NSValue valueWithBytes:&temp objCType:@encode(test)];

posted @ 2015-12-24 16:43  芥末勾勒  阅读(177)  评论(0编辑  收藏  举报