0

デリゲート関数が呼び出されていない iOS プロジェクトで問題が発生しました。トリガーされなかった理由を理解できませんでした。

関数は UITableViewController サブクラスにありました。

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

独自のコードを使用して関数を手動で追加したことが判明しましたが、XCode から自動生成されたコードの一部として、ソース ファイルのさらに下に既に存在していました。

XCode では、関数が同じソース ファイルに 2 回存在するという事実に問題があるようには見えませんでした。

XCode がこれに対する警告を表示しないのはなぜですか?

この場合のシナリオで警告を表示するように構成する方法はありますか?

編集: XCode 4.5.2を使用しています

4

1 に答える 1

1

メソッドの 1 つがカテゴリに含まれていませんか? カテゴリがサブクラスのメソッドをオーバーライドするため、これは合法です。Xcode 4.5.2 を使用してテストしたところ、同じメソッド名を 2 回使用しようとするとすぐに警告が表示されました。

于 2013-01-24T23:17:26.143 に答える