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> を関数に渡したいです。