(25)和@(25)之间的差异

时间:2014-04-17 19:46:35

标签: objective-c cocoa nsnumber

我一直在研究我的objective-c和我正在处理UIInterpolatingMotionEffect对象的练习之一。该类的2个属性为minimumRelativeValuemaximumRelativeValue。在练习中,他们将它们作为以下内容:

motionEffect.minimumRelativeValue = @(-25);
motionEffect.maximumRelativeValue = @(25);

我知道在obj-c中你使用@代表(来自维基百科):

Used to avoid taking english words and making them reserved (for example, you can't have a variable called float in C/Objective-C because this is a reserved word).

话虽如此,在上面的例子中使用@(-25)(-25)之间的区别是什么?

2 个答案:

答案 0 :(得分:3)

25是一个数字。 @(25)是一个值为25的NSNumber对象。它等于

[NSNumber numberWithInt:25];

在某些情况下,您必须使用NSNumber包装数字。例如,您无法向NSArray / NSMutableArray添加数字。

您可以在此处阅读有关Objective C文字的更多信息https://www.mikeash.com/pyblog/friday-qa-2012-06-22-objective-c-literals.html

答案 1 :(得分:3)

( - 25)只有-25左右括号。您可以在没有(或有时更改)其值的情况下向大量数字或逻辑事件添加支持。

@是objective-c中的对象创建快捷方式之一。在这种情况下,它相当于@ -25(坦率地说,我不确定这里是否需要括号因为减号),相当于[NSNumber numberWithInt:-25]。

在此处查看更多内容:http://clang.llvm.org/docs/ObjectiveCLiterals.html