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)];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容