Objective-Cコードから以下のMenuクラスを使用しようとすると、私はfoobar(またはaddItemWithName関数が利用できない間に(引数リストにSelector型を持たない他の関数)、目的関数-cファイルに自動生成されたswiftをチェックして、その関数がそこのMenuインターフェイスにリストされていません。どうすればこの作品を作れますか?Swiftクラスの "Selector"型の関数引数をObjective-Cに使用できないようにします
public class Menu : UIView {
public func foobar() {
// implementation
}
public func addItemWithName(itemName: String, target: AnyObject?, action: Selector?) {
// implementation
}
}
プロジェクトをクリーンアップして再構築しようとしましたか? – AnthonyR
新しいAPIを作成するときは、ターゲットとセレクタベースのコールバックを使用しないことを強くお勧めします。ブロック/クロージャを渡す方が良い。たとえば、現代的なアプローチについては、 'UIAlertController'と' UIAlertAction'を参照してください。 – Sulthan
@スルタンアドバイスありがとう。私はどうやってやるのか見ていきます。問題のプロジェクトでは、目標は目標/行動を使用することであるので、私はそのことに固執するでしょう。しかし、閉鎖はもちろん面白いですし、私は将来も同様の状況でそれらを使いたいと思います。 –