我有一大堆代码因为预期的表达式错误而无法正常工作。
NSMutableArray *worldData =[[NSMutableArray alloc] initWithArray:@[
@[ @1, @2, @3, @4,@5,@6],
@[ @1, @2, @3, @4,@5,@6],
@[ @1, @2, @3, @4,@5,@6],
@[ @1, @2, @3, @4,@5,@6],
]];
int *x = 1;
if ( int 1 == (worldData objectAtIndex:1)){
UIImage *block31 = [UIImage imageNamed:
@"grass2.png"];
}
}
答案 0 :(得分:1)
我不知道这应该是什么:
int *x = 1;
if ( int 1 == (worldData objectAtIndex:1)){
我想你可能意味着:
if ([[[worldData objectAtIndex:1] objectAtIndex:1] intValue] == 1)
或更简洁地说,您可以使用下标和文字:
if ([worldData[1][1] isEqual: @1])
答案 1 :(得分:1)
你不需要在if块中声明int。只需重写为:
if ( 1 == [[[worldData objectAtIndex:1] objectAtIndex:1] intValue]){
答案 2 :(得分:0)
int *x = 1;
创建指针以存储变量的地址。
它应该是这样的:
int num = 1;
int *x = #
另一个问题:
if ( int 1 == (worldData objectAtIndex:1)){
以上是毫无意义的。
当您将NSNumber值与int进行比较时。要么将一个类型转换为NSNumber,要么将另一个转换为intValue。
if ( [@1 isEqual: worldData[1]]) //[worldData objectAtIndex:1]
或
if (1 == [worldData[1] intValue])
您正试图通过[worldData objectAtIndex:]
访问整个阵列。所以你不能用整数来比较它们。你需要另一个数组,或者你需要再次进入数组的第二维。
[[worldData objectAtIndex:] objectAtIndex:]
或,
worldData[row][col]