gpt4 book ai didi

iphone - 第一次向 NSMutableArray 添加对象

转载 作者:行者123 更新时间:2023-11-28 20:30:11 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个方法,当我按下一个按钮时,将一个字符串添加到 NSMutableArray,它是 UITableView 的模型。

 - (void)addPressed:(id)sender
{
NSString *string = @"aString";
[self.array addObject:string];
NSLog(@"Array count: %d",[self.array count]);
[self.tableView reloadData];
}

问题是,只有当我按下两次连接到此操作的按钮时,添加才会第一次起作用,我得到以下输出:

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;
}

最佳答案

您的数组被创建为一个无主(实际上是自动释放)对象,这意味着它会在每次调用访问器后不久被销毁。然后在您下次访问它时重新创建它,这会为您提供一个新的空数组。

您需要创建一个拥有的数组版本以存储到您的实例变量中:

if (!_array) {
_array = [[NSMutableArray alloc] init];
// Note no need to create a temp variable.
}
return _array;

您也可以打开 ARC,它会为您解决这个问题,无论如何这是个好主意。

关于iphone - 第一次向 NSMutableArray 添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com