如何在Objective-C中指定数组文字,在本例中包含整数?

时间:2013-09-30 17:50:33

标签: objective-c

我现在有:

transformations = @[@[1, 1], @[1, -1], @[-1, 1], @[-1, -1]];

应该给出什么类型的? (NSArray *)?

4 个答案:

答案 0 :(得分:4)

这是NSArray的{​​{1}}。虽然您应该将标量转换为NSArrays。 :)

NSNumbers

来自Clang Documentation

  

//整数文字。
   NSNumber * fortyTwo = @ 42; //   相当于[NSNumber numberWithInt:42]
  NSNumber * fortyTwoUnsigned   = @ 42U; //相当于[NSNumber numberWithUnsignedInt:42U]
   NSNumber * fortyTwoLong = @ 42L; //相当于[NSNumber   numberWithLong:42L]
  NSNumber * fortyTwoLongLong = @ 42LL; //   相当于[NSNumber numberWithLongLong:42LL]

答案 1 :(得分:1)

数组必须有一个对象,而不是一个原始类型,因此您需要使用NSNumber填充数组。例如,使用@(1),并使用transformations[x][y].intValue获取值。

答案 2 :(得分:1)

NSArray *transformations = @[@[@1, @1], @[@1, @(-1)], @[@(-1), @1], @[@(-1), @(-1)]];

答案 3 :(得分:1)

您可以将int文字包装到NSNumber对象中。

NSNumber *intNumber = [NSNumber numberWithInt:-1];

您还可以通过编写:

来使用NSNumber的快速语法
@(-1) 
在您的NSArray声明中