尝试使用prepareForSegue时,NSMutableArray为nil

时间:2014-04-18 16:59:13

标签: ios objective-c arrays

我是一名新开发人员,这个问题让我摸不着头脑。

无论出于何种原因,当我试图将它传递给我的DetailViewController时,我的punches mutable数组保持为nil。 punches是我的Punches类中NSMutableArray类型的属性。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
DetailViewController* dvc = [segue destinationViewController];
NSIndexPath* indexPath = [shiftTableView indexPathForSelectedRow];
dvc.shiftPunches.punches = shifts[indexPath.row];
}

我在我的DetailViewController中将shiftPunches设置为一个具有强引用的属性。使用调试器我的shift可变数组显示它有2个对象(两个都是可变数组)。

我甚至尝试过:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
DetailViewController* dvc = [segue destinationViewController];
dvc.punches.punches = [NSMutableArray new];
[dvc.shiftPunches.punches addObject:@"foo"];
}

仍然没有。我确定我遗漏了一些基本的东西,有什么建议吗?

由于

1 个答案:

答案 0 :(得分:-1)

如果pucnes有效NSMutableArray不是nil,请尝试执行以下操作:

执行 - [NSMutableArray new];时,您只需创建一个空数组。尝试执行以下操作:

1)在DetailViewController中创建NSMutableArray。将其命名为detailArray(或您喜欢的名称)。

2)然后做:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
 DetailViewController *dvc = [[DetailViewController alloc]init];
dvc.detailArray = self.punches;


}