首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在NSDictionary参数中指定键和值数据类型?

如何在NSDictionary参数中指定键和值数据类型?
EN

Stack Overflow用户
提问于 2022-02-27 19:57:18
回答 1查看 103关注 0票数 0

我想定义一个函数,它可以用在目标-c中。我有一个枚举:

代码语言:javascript
代码运行次数:0
运行
复制
    @objc public enum BookType: Int {
      case novel
      case magazine
    
      func name() -> String {
          switch self {
          case .novel:
              return "novel"
          case .magazine:
              return "magazine"
          }
      }
  }

其职能是:

代码语言:javascript
代码运行次数:0
运行
复制
@objc public func uploadBookImages(images: [BookType: UIImage]) {
       // code here
}

这个函数会给我带来编译错误,说:

不能将

方法标记为@objc,因为参数的类型不能用Objective表示。

这可能是因为目标-c不接受快速字典,因为它是一个结构。我正在考虑用NSDictionary代替一本快速字典。但是,如何使用BookType: UIImage使用NSDictionary指定参数数据类型?我想在调用函数时向函数传递一个NSDictionary。

EN

回答 1

Stack Overflow用户

发布于 2022-02-28 05:52:07

您需要使用NSDictionary而不是快速字典

代码语言:javascript
代码运行次数:0
运行
复制
  func uploadBookImages(images: NSDictionary) {
    // code here
    print(images)
}

用法:

代码语言:javascript
代码运行次数:0
运行
复制
   let dictParams:Dictionary<BookType, Int> = [
        BookType.magazine : 1,
        BookType.novel : 2,
        ];
    
    uploadBookImages(images: dictParams as NSDictionary)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71288039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档