NSMutableArray不能添加对象!(使用addObject:和addObjectsFromArray都不行)

6
(IBAction)adicionarPastas:(id)sender {

    AbreBrowser *abre = [[AbreBrowser alloc] init];

    NSMutableArray *arquivosRecebe = [[NSMutableArray alloc] initWithArray:[abre abreBrowser]];
    [abre release];

    [arquivos addObjectsFromArray:arquivosRecebe];    
    [arquivosTableView reloadData];

    [arquivosTableView setDataSource:self];
}

好的,arquivos在这个文件头中被声明为:

NSMutableArray *arquivos;

[abre abreBrowser] 确实返回一个 NSArray

我的问题是 [arquivos addObjectsFromArray:arquivosRecebe]; 不起作用。 我也尝试了 addObject,但结果相同,即没有任何效果。

当我像这样提供 arquivos:

arquivos = [abre abreBrowser]; 

这个程序是有效的。 但是当我执行[arquivos addObject:Object]或者[arquivos addObjectsFromArray:NSArray]时,它没有将我的NSMutableArray arquivos填充。

有人能告诉我我做错了什么吗?

2个回答

18

看起来你在对象初始化之前没有分配 arquivos 的任何位置,就直接向它发送 addObjectsFromArray 消息。


4
哦,天啊,你说得对,谢谢。分配之后,它起作用了。我怎么会错过那个呢????我应该给自己一个耳光。天啊... - Crofuncio
1
答案就在你的问题里;你说过 - “当我像这样输入'arquivos = [abre abreBrowser];'时,它可以工作。” - sinha
这让我避免了长时间撞墙! - Prethen

0

那么为什么不使用有效的方法呢?arquivos = [abre abreBrowser];

此外,似乎你应该交换这些语句吗?

   [arquivosTableView reloadData];
   [arquivosTableView setDataSource:self];

转换为这个:

   [arquivosTableView setDataSource:self];
   [arquivosTableView reloadData];

我没有使用可行的方法,因为我想继续将对象添加到NSMutableArray中,而使用可行的方法是不可能的。谢谢你的帮助,之前的答案解决了我的问题,但我会采纳你的建议并倒置这些行。 - Crofuncio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接