0

Objective-Cでも使用できるswiftの関数を定義したいと思います。私は列挙型を持っています:

    @objc public enum BookType: Int {
      case novel
      case magazine
    
      func name() -> String {
          switch self {
          case .novel:
              return "novel"
          case .magazine:
              return "magazine"
          }
      }
  }

そして機能は次のとおりです。

@objc public func uploadBookImages(images: [BookType: UIImage]) {
       // code here
}

この関数は、次のようなコンパイル エラーを表示します。

パラメーターの型を Objective-C で表すことができないため、メソッドを @objc とマークすることはできません

これは、objective-c が構造体であるため、swift 辞書を受け入れないことが原因である可能性があります。迅速な辞書の代わりに NSDictionary を使用することを考えています。しかし、NSDictionary を使って [BookType: UIImage] に引数のデータ型を指定するにはどうすればよいでしょうか? 関数を呼び出すときに NSDictionary<BookType: UIImage> を関数に渡したいです。

4

1 に答える 1