Objective c NSMutableArray中的对象均为空

Objective c NSMutableArray中的对象均为空,objective-c,ios,nsmutablearray,Objective C,Ios,Nsmutablearray,是我正在运行的代码。第一个NSLog打印UIImageView对象,第二个NSLog打印(null)。为什么第二个NSLog不打印与第一个相同的内容 数组self.blocks初始化如下: UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SudokuCell.png"]]; NSLog(@"%@", image); [[self.blocks objectAtIndex:row] setO

是我正在运行的代码。第一个NSLog打印UIImageView对象,第二个NSLog打印(null)。为什么第二个NSLog不打印与第一个相同的内容

数组self.blocks初始化如下:

UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SudokuCell.png"]];
NSLog(@"%@", image);
[[self.blocks objectAtIndex:row] setObject:image atIndex:col];
NSLog(@"%@", [[self.blocks objectAtIndex:row] objectAtIndex:col]);
self.blocks=[[NSMutableArray alloc]initWithCapacity:9];
对于(int i=0;i<9;i++)
{
[self.blocks addObject:[[NSMutableArray alloc]initWithCapacity:9]];
}

NSMutableArray
没有
setObject:atIndex:
方法。您应该改用
insertObject:atIndex:
。请注意,索引不能高于数组的计数(而不是容量),例如,它不会自动用“空”值填充数组。

行和列的值是什么?此setObject:atIndexedSubscript是什么?当您使用新的数组文本时,这可能会混淆meThat的调用:
myArray[index]=object最终并不是问题所在。问题是我以为我是在初始化数组,但实际上初始化并没有被调用,所以它从来没有被初始化过。
self.blocks = [[NSMutableArray alloc] initWithCapacity: 9];
for (int i = 0; i < 9; i++)
{
    [self.blocks addObject:[[NSMutableArray alloc]initWithCapacity:9]];
}