1

魔法が起こっていることを理解するのを手伝ってください。私が持っているのは、カスタム セルを含む tableView です。長いタップを処理する必要はありませんが、タップが発生すると、次のメッセージが表示されてプログラムがクラッシュします。

例外 'NSInvalidArgumentException'、理由: '-[__NSCFType signatureRecognizerShouldBegin:]: 認識されないセレクターがインスタンス 0xa0836a0 に送信されました'

Crash while long press on the tableviewで同様の質問を見つけましたが、その解決策は役に立ちませんでした。実際、独自の長いジェスチャ認識エンジンを追加しようとすると、ハンドラー関数が呼び出されません。迷惑なエラーが何度も繰り返されます。

私がここでしていることをより正確に:

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

セルを返す直前に、次の行があります。

UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress)];

[セル addGestureRecognizer:longPressGesture];

しかし

-(void)handleLongPress

ほとんど呼ばれません。そして、そうであっても、数回成功した後、再びエラーが発生します。

もう一度:長いジェスチャを処理する必要はありません。アプリがクラッシュしないようにしたいだけです。そしてポイントは、私は特別なことを何もしないということです。クラスを作成しました

@interface NewsViewController: UITableViewController <UISplitViewControllerDelegate, UITableViewDataSource, UITableViewDelegate>

そして今、カスタムサブビューをセルに追加しようとしています。この小さな問題に気付くまでは、すべて問題ありませんでした。

ちなみに、行にコメントすると消えます

[セル addSubview:myCustomCell.view];

しかし、これは私が望むものではありません。ちなみに、私のテーブルは編集可能であってはならないので、

  • (BOOL) tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { NO を返します。}

編集を許可しても何も変わりません。ロングタップ→クラッシュ。そして同じメッセージ。

カスタム セルのプロパティに問題がある可能性がありますが、正確にはわかりません。もう 1 つの事実: 私のテーブルは、マスター/ディテール ベースのアプリの詳細ビューです。

提案と注意をありがとう!

4

0 に答える 0