我想定义一个函数,它可以用在目标-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不接受快速字典,因为它是一个结构。我正在考虑用NSDictionary代替一本快速字典。但是,如何使用BookType: UIImage使用NSDictionary指定参数数据类型?我想在调用函数时向函数传递一个NSDictionary。
发布于 2022-02-27 21:52:07
您需要使用NSDictionary而不是快速字典
func uploadBookImages(images: NSDictionary) {
// code here
print(images)
}
用法:
let dictParams:Dictionary<BookType, Int> = [
BookType.magazine : 1,
BookType.novel : 2,
];
uploadBookImages(images: dictParams as NSDictionary)
https://stackoverflow.com/questions/71288039
复制相似问题