我正在尝试选择多个UITableViewCells
,它工作正常,但我无法在NSMutableArray
添加字符串。
我正在使用此代码,我的日志始终为(null):
self.mutarray = [[NSMutableArray alloc] init];
[self.mutarray addObject:path]; //path is an NSString
NSLog(@"%@", self.mutarray);
必须将UITableViewCell
的路径添加到NSMutableArray
,是否可能?
哦,我在- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
答案 0 :(得分:3)
根据您的评论“它只显示新添加的字符串,但不显示所有字符串。”这是因为您在表视图的委托方法中分配NSMutable Array。每次敲击单元格时都会分配一个新数组。
在ViewDidLoad中分配你的“mutarray”数组
或者
只有在零或空时才分配。
if(!self.mutarray)
self.mutarray = [[NSMutableArray alloc] init];
答案 1 :(得分:2)
您似乎尚未初始化阵列。属性的一个好习惯是使用一种称为延迟初始化的东西。
添加此方法。
- (NSMutableArray *)mutarray
{
if (!_mutarray) {
_mutarray = [[NSMutableArray alloc] init];
}
return _mutarray;
}
因此,每次请求数组时,访问者都会确保在返回对象之前创建对象。这是防御性编程的好方法。
答案 2 :(得分:1)
在添加任何对象之前必须分配/ init:
if(!mutarray)mutarray = [[NSMutableArray alloc]init];
[self.mutarray addObject:path];
答案 3 :(得分:0)
您是否尝试过添加路径副本? 由于UITableViewCells被重用,可能问题就在于此?
[self.mutarray addObject:[path copy]];