私のアプリには、ボタンを押すと、UITableViewのモデルであるNSMutableArrayに文字列を追加するメソッドがあります。
- (void)addPressed:(id)sender
{
NSString *string = @"aString";
[self.array addObject:string];
NSLog(@"Array count: %d",[self.array count]);
[self.tableView reloadData];
}
問題は、このアクションに接続されているボタンを2回押した場合にのみ、追加が最初に機能することです。次の出力が得られます。
2012-09-16 21:33:08.766 iUni[3066:c07] Array count: 1 //Which is fine since it worked
2012-09-16 21:33:08.952 iUni[3066:c07] Array count: 1 //Now count should be 2!!
なぜこれが起こっているのか誰もが推測していますか?
@propertyを追加し、それを合成して、次のように怠惰に説明しました。
- (NSMutableArray *)array
{
if (!_array) {
NSMutableArray *array = [NSMutableArray array];
_array = array;
}
return _array;
}