-3

我目前有:

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

什么类型应该给这个?(NSArray *)?

4

4 回答 4

4

它是一个NSArrayNSArrays尽管您应该将标量转换为NSNumbers. :)

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

来自Clang 文档

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

于 2013-09-30T17:52:27.060 回答
1

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

于 2013-09-30T17:52:26.327 回答
1
NSArray *transformations = @[@[@1, @1], @[@1, @(-1)], @[@(-1), @1], @[@(-1), @(-1)]];
于 2013-09-30T17:53:19.317 回答
1

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

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

等等

您还可以通过编写以下代码来使用 NSNumber 的快速语法:

@(-1) 

在您的 NSArray 语句中。

于 2013-09-30T17:53:29.770 回答