2012-10-03 19 views
0
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]); 

是我正在運行的代碼。第一個NSLog打印一個UIImageView對象,第二個NSLog打印(null)。爲什麼第二個NSLog不打印與第一個相同的東西?NSMutableArray中的對象全爲空

陣列self.blocks被初始化爲例如:

self.blocks = [[NSMutableArray alloc] initWithCapacity: 9]; 
for (int i = 0; i < 9; i++) 
{ 
    [self.blocks addObject:[[NSMutableArray alloc]initWithCapacity:9]]; 
} 
+0

row和col的值是什麼? – Kyle

回答

2

NSMutableArray不具有setObject:atIndex:方法。您應該改用insertObject:atIndex:。請注意,索引不能高於數組的數量(不是容量),例如。它不會自動用「空」值填充你的數組。

+0

這是什麼setObject:atIndexedSubscript:那麼?這可能是我的困惑 –

+0

當你使用新的數組文字時,這就是所謂的:'myArray [index] = object;' – DrummerB

+0

沒有最終成爲問題。問題是我認爲我正在初始化數組,但實際上初始化沒有被調用,所以它從來沒有初始化。 –