如何将字符串添加到NSMutableArray

时间:2013-08-25 18:10:10

标签: ios uitableview nsmutablearray

我正在尝试选择多个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

中称呼它

4 个答案:

答案 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]];