1. ホーム
  2. xcode

[解決済み] '#selector' はObjective-Cに公開されていないメソッドを指します。

2022-11-29 09:54:54

質問

新しいXcode 7.3では、addTarget経由でパラメータを渡すと、通常はうまくいくのですが、この場合はタイトルのエラーを投げています。何かアイデアはありますか?私はそれを@objcに変更しようとすると、それは別のものを投げる。

ありがとうございます!

cell.commentButton.addTarget(self, action: #selector(FeedViewController.didTapCommentButton(_:)), forControlEvents: UIControlEvents.TouchUpInside)

呼び出しているセレクタ

func didTapCommentButton(post: Post) {
}

どのように解決するのですか?

私の場合、セレクタの機能は private . を削除したら private を削除したら、エラーはなくなりました。同じく fileprivate .

Swift 4 では

を追加する必要があります。 @objc を関数宣言に追加する必要があります。swift4までは暗黙のうちに推論されていました。