我有 2 个与 segue 连接的视图控制器(我将这些视图控制器称为视图控制器 1 和视图控制器 2),其中我使用 prepare 将名为 Lead 的实体从视图控制器 1 传递到视图控制器 2。我使用相同的机制将相同的线索传递给其他视图控制器,并且我还使用来自其他视图控制器的视图控制器 2 并且工作正常。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UIViewController *destinationVC = segue.destinationViewController;
if([destinationVC isKindOfClass:[UINavigationController class]])
destinationVC = ((UINavigationController *)destinationVC).topViewController;
if([destinationVC respondsToSelector:@selector(setLead:)]) {
[destinationVC performSelectorOnMainThread:@selector(setLead:) withObject:self.lead waitUntilDone:YES];
}
但是,在这种特殊情况下,当从视图控制器 2 中,我尝试从任何地方访问此领先属性(在这种情况下,首先在 viewDidLoad 中访问,我在控制台中使用 (lldb) 获得 EXC_BAD_ACCESS 代码 = 1 并且没有任何其他帮助。同样,我在此视图控制器 2 中使用来自其他视图控制器的相同代码,它也在这里传递了 Lead 实体并且工作正常。
if([self.lead.category isEqualToNumber:@(Buyer)])
outputImage = [BackgroundGradient blueGradientWithRect:self.tableView.bounds];
接下来我要做的是创建一个新属性...只需将属性声明从lead复制并粘贴到lead2,然后将数据传递给那个...这样就可以了,我可以在没有a的情况下查看控制器2崩溃并且能够查看和更改数据没问题,但是当我回击返回视图控制器 1 时,我在视图控制器 2 的 @implementation 行上得到另一个 EXC_BAD_ACCESS,在跟踪和应用程序中带有 .ccx_destruct 消息冻结。
我不知道发生了什么,现在让我发疯了。我试过使用 NSZombieEnabled 和仪器,但是没有运气。任何帮助将不胜感激!我已经与这个问题斗争了两天了。我正在在 Mavericks 上运行 Xcode 5 的 iPhone 5s 上进行 iOS7 调试。我正在将 Storyboards 与 ARC 一起用于一个也应该部署到 iOS6 的项目。
谢谢!