如何添加2个NSNumbers?

4th*_*ace 1 cocoa-touch objective-c

为什么以下添加失败并出现以下错误?

NSNumber *five = [NSNumber numberWithInt:5];
NSNumber *three = [NSNumber numberWithInt:3];
NSNumber *eight = [five intValue] + [three intValue];
Run Code Online (Sandbox Code Playgroud)

ARC不允许将int隐式转换为NSNumber

rma*_*ddy 5

使用现代语法:

NSNumber *five = @5;
NSNumber *three = @3;
NSNumber *eight = @([five intValue] + [three intValue]);
Run Code Online (Sandbox Code Playgroud)

为了完整起见:该错误是由试图分配一个导致int一个值NSNumber的变量.必须包装该值.