2

在我的应用程序中,可以将一个视图中的图形拖到第二个视图中,以便新图形替换第二个视图(例如具有拖放功能的复制/粘贴效果)。如果委托协议被取出,则应用程序可以工作,以便第二个视图处理函数本身的更改。添加协议后,应用程序在主文件中崩溃

return UIApplicationMain(argc, argv, nil, NSStringFromClass([Load_CreatorAppDelegate class]));.

除了标准(lldb)之外,没有任何错误输出。即使我取消对委托的调用(保留在代码中),应用程序也会崩溃。不过,我知道它必须与协议代码相关,因为在此之前它运行良好。

这是第二个视图(BeamView)的部分代码:

[self drawSupportsAtLeftPoint:self.beamBottomLeft rightPoint:self.beamBottomRight inContext:context :leftPin :rightPin];   

BOOL pt = NO;
if (self.tempLoad) {
    //self.loadGraph = [self.dataSource changeToTempLoad:self]; NOTE #1
    //if (self.tempPtLoad.x != 0 || self.tempPtLoad.y != 0) pt = YES;
    pt = [self changeLoad];
    [self drawLoadWithFunction:self.loadGraph inContext:context fromPoint:self.beamTopLeft toPoint:self.beamTopRight withAlpha:0.3 isPointLoad:pt inBlack:YES];
}
else {
    self.loadGraph = ^(int x) {return x/15;};
    [self drawLoadWithFunction:self.loadGraph inContext:context fromPoint:self.beamTopLeft toPoint:self.beamTopRight withAlpha:1 isPointLoad:pt inBlack:NO];
}

self.tempLoad = NO;

注意#1:这些被注释掉的行是调用委托的行。这两种方法及其实现是我所做的唯一更改。

我完全困惑,任何帮助将不胜感激。应用程序在主文件中崩溃的可能原因是什么?

4

1 回答 1

0

行!我觉得有点愚蠢,但事实证明,崩溃与委托没有任何关系(嗯,有点)。我删除了 ViewController.m 文件中的插座,而没有在 IB 中断开它们,这导致了崩溃。

我忘记了我已经这样做了,所以我花了一段时间才想到它——直到我回到一个较旧的保存版本,我才看到了不同之处。

于 2012-07-17T23:28:35.030 回答