添加到NSMutableArray

时间:2014-01-20 19:54:21

标签: ios objective-c nsmutablearray

我找不到明显的答案。我正在尝试将数据添加到数组中,因此我假设我需要使用NSMutableArray

我有一个ViewController(CVDownload)和一个TableViewController(CVTableViewController)。 NSMutableArray在CVTableViewController.h中声明

@property (strong, nonatomic) NSMutableArray *cvFiles;

然后我尝试在CVDownload.m中添加一个字符串

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    CVTableViewController *controller = (CVTableViewController *)segue.destinationViewController;
    [controller.cvFiles addObject:(@"sdsd")];
}

这不起作用。我假设因为我没有初始化数组。我已尝试在CVDownload.m中初始化数组

NSMutableArray *cvFiles = [NSMutableArray array];

但这也不起作用。在调试中,数组仍为零。我不明白我哪里出错了。

基本上,我的目标是在CVTableViewController中有一个用于填充表的数组,我希望能够在CVDownload中添加到数组中。有什么我想念的吗? NSArray是否有与NSString的stringByAppendingString类似的方法?

3 个答案:

答案 0 :(得分:1)

init的{​​{1}}方法中写下这个:

CVTableViewController

答案 1 :(得分:0)

你在哪里初始化数组?你确定它是在prepareForSegue之前创建的吗?是吗?

//编辑:我问,因为,as confirmed in the comments,数组在prepareForSegue:之后被初始化。如上所述,修复方法是在-awakeFromNib而不是-viewDidLoad初始化数组。

答案 2 :(得分:0)

CVTableViewController *controller = (CVTableViewController *)segue.destinationViewController;

if(nil == controller.cvFiles)
{
   controller.cvFiles =  [[NSMutableArray alloc] init];
}

[controller.cvFiles addObject:(@"sdsd")];