@()可以用來(lái)將一些非對(duì)象的數(shù)據(jù)包裝成OC里面的對(duì)象
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
經(jīng)常用到的就是將int float包裝成為NSNumber對(duì)象。比如上面的第三個(gè)打印結(jié)果將123包裝成了NSNumber。在masonry中,設(shè)置view的寬和高的時(shí)候不能直接傳遞基本數(shù)據(jù)類型,需要對(duì)基本數(shù)據(jù)進(jìn)行包裝。
[self.view mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(@(30));
}];
結(jié)構(gòu)體和共用體不能直接用上面的語(yǔ)法包裝。用下面的NSValue類包裝
CGPoint p = CGPointMake(100, 100);
NSValue *value = [NSValue valueWithBytes:&p objCType:@encode(CGPoint)];