【发布时间】:2014-04-18 16:59:13
【问题描述】:
我是一名新开发人员,这个问题让我摸不着头脑。
无论出于何种原因,当我试图将它传递给我的 DetailViewController 时,我的拳击可变数组仍然为零。 punches 是我的 Punches 类 NSMutableArray 类型中的一个属性。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
DetailViewController* dvc = [segue destinationViewController];
NSIndexPath* indexPath = [shiftTableView indexPathForSelectedRow];
dvc.shiftPunches.punches = shifts[indexPath.row];
}
我已将 shiftPunches 设置为我的 DetailViewController 中的一个属性,并具有强引用。使用调试器,我的 shifts 可变数组显示它有 2 个对象(都是可变数组)。
我什至尝试过:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
DetailViewController* dvc = [segue destinationViewController];
dvc.punches.punches = [NSMutableArray new];
[dvc.shiftPunches.punches addObject:@"foo"];
}
仍然是零。我确定我在这里遗漏了一些基本的东西,有什么建议吗?
谢谢
【问题讨论】:
-
分配了什么
shiftPunches? -
使用
[NSMutableArray array]; -
我的猜测是
shiftPunches尚未初始化,正如@Larme 所提到的,因此您正在向nil发送setPunches消息。请发布您的 DetailsViewController 代码,以便我们查看您在何时何地初始化shiftPunches。 -
@davidf2281- 你们是对的,我没有初始化 shiftPunches。但是我很困惑为什么我要在我的 DetailViewController 中进行初始化,因为在它甚至有机会完成 segue 之前我就得到了“nil”。这应该在我的 ViewController 中初始化吗?
标签: ios objective-c arrays