2

私のアプリでは、1 つのビューのグラフを 2 番目のビューにドラッグして、2 番目のビューを新しいグラフに置き換えることができます (ドラッグ アンド ドロップ機能によるコピー/貼り付け効果のように)。2 番目のビューが関数自体の変更を処理するようにデリゲート プロトコルが取り出された場合、アプリは機能します。プロトコルが追加されると、メイン ファイルでアプリがクラッシュします。

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

標準 (lldb) 以外のエラー出力はありません。デリゲートへの呼び出しを (コードを保持して) 行っても、アプリがクラッシュします。ただし、それ以前は正常に機能していたため、プロトコルコードに関連している必要があることはわかっています。

2 番目のビュー (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: コメント アウトされているこれらの行は、デリゲートを呼び出す行です。これら 2 つのメソッドとその実装は、私が行った唯一の変更です。

私は完全に混乱しています。どんな助けでも大歓迎です。アプリがメイン ファイルでクラッシュする原因として考えられるものは何ですか?

4

1 に答える 1

0

Ok!ちょっとばかげている気がしますが、クラッシュは委任とは何の関係もないことがわかりました (まあ、そうです)。IB で切断せずに ViewController.m ファイルのアウトレットを削除したため、クラッシュが発生していました。

私はそれをしたことを忘れていたので、それを考えるのにしばらく時間がかかりました.以前に保存されたバージョンに戻って初めて違いがわかりました.

于 2012-07-17T23:28:35.030 に答える