iOS 里面的 @()

@()可以用来将一些非对象的数据包装成OC里面的对象

    NSLog(@"%@",@"123".class);
    NSLog(@"%@",@("my").class);
    NSLog(@"%@",@(123).class);

  2017-04-05 21:39:16.681 呵呵[15842:508051] __NSCFConstantString
  2017-04-05 21:39:16.681 呵呵[15842:508051] NSTaggedPointerString
  2017-04-05 21:39:16.681 呵呵[15842:508051] __NSCFNumber

经常用到的就是将int float包装成为NSNumber对象。比如上面的第三个打印结果将123包装成了NSNumber。在masonry中,设置view的宽和高的时候不能直接传递基本数据类型,需要对基本数据进行包装。

    [self.view mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.equalTo(@(30));
    }];

结构体和共用体不能直接用上面的语法包装。用下面的NSValue类包装

    CGPoint p = CGPointMake(100, 100);
    NSValue *value = [NSValue valueWithBytes:&p objCType:@encode(CGPoint)];

你可能感兴趣的:(iOS 里面的 @())