我找不到明显的答案。我正在尝试将数据添加到数组中,因此我假设我需要使用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类似的方法?
答案 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")];