我想用swift定义一个也可以在objective-c中使用的函数。我有一个枚举:
@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
}
这个函数会给我带来一个编译错误说:
方法不能被标记为@objc,因为参数的类型不能在 Objective-C 中表示
这可能是因为objective-c 不接受swift 字典,因为它是一个结构。我正在考虑使用 NSDictionary 而不是 swift 字典。但是,如何使用 NSDictionary 将参数数据类型指定为 [BookType: UIImage]?我想在调用时将 NSDictionary<BookType: UIImage> 传递给该函数。