如何接受类类型的数组作为参数

抹茶坊

我想将一组类类型作为参数传递给函数,我该怎么做?

码:

let classList = [Class1.self, Class2.self, Class3.self]
myFunction(classList)    // how would I write the parameter for this?

目标:我创建了一个UITableView扩展名来缩短注册笔尖,您可以使用来调用它tableView.register(CellClass.self)功能签名是func register<T>(_ cellType: T.Type)

鉴于此,我试图创建一个寄存器单元功能,在其中我想执行以下操作:

func registerCells(classTypes: [XXXX]) {
     classTypes { (classType) in
        tableView.register(YYYY)
     }
}

并使用 tableView.resigterCells([Class1.self, Class2.self, Class3.self])

我不确定在Swift中是否可行。请指教 :)

马特

您当然可以这样做:

func registerOneCellType(_ type: UITableViewCell.Type) {}
func registerCellTypes(_ types:[UITableViewCell.Type]) {
    for type in types {
        registerOneCellType(type)
    }
}
class CellType1: UITableViewCell {}
class CellType2: UITableViewCell {}
registerCellTypes([CellType1.self, CellType2.self])

但是你知道吗?我不会!我将传递实际的单元格对象并采用它们的类型,然后从那里开始。当您传递实例而不是类型时,Swift会更加令人愉悦。

func registerOneType(ofCell: UITableViewCell) {}
func registerTypes(ofCells: [UITableViewCell]) {
    for cell in ofCells {
        registerOneType(ofCell: cell)
    }
}
class CellType1: UITableViewCell {}
class CellType2: UITableViewCell {}
registerTypes(ofCells: [CellType1(), CellType2()])

在内部,registerOneType我会打电话type(of:)给您获取类型,然后离开。请注意,就我所知,这里不需要泛型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何限制方法只接受对象作为参数,而不接受类对象作为类型文字?

来自分类Dev

如何使用类的类型作为模板的参数

来自分类Dev

如何使Rust函数接受任何浮动类型作为参数

来自分类Dev

如何接受非相当通用但动态类型作为子类的参数?

来自分类Dev

如何让方法接受两种类型的列表作为参数?

来自分类Dev

如何接受 CGFloat 或 CGFloats 数组作为函数参数?

来自分类Dev

传递一个接受任意数量和类型参数的函数作为类模板参数

来自分类Dev

接受类型或模板作为其参数的模板

来自分类Dev

函数接受函数作为模板类型的参数

来自分类Dev

接受类型或模板作为其参数的模板

来自分类Dev

wse3继承的类类型不作为方法参数接受

来自分类Dev

如何使类实例接受参数?

来自分类Dev

jQuery为什么接受数组作为参数?

来自分类Dev

如何使用模板化类作为参数类型?

来自分类Dev

为什么此.NET类不通过继承将该其他父类作为类型参数接受?

来自分类Dev

如何使方法将任何类型的数组作为参数?

来自分类Dev

如何使Robot Framework函数接受参数作为字符串而不是默认的Unicode类型

来自分类Dev

如何创建接受InputStream作为参数的API?

来自分类Dev

如何接受异步函数作为参数?

来自分类Dev

如何只接受ArrayBuffer作为参数

来自分类Dev

如何从不接受 Tensors/NumPy 数组作为参数的函数创建层?

来自分类Dev

如何声明一个接受类型化数组参数的函数

来自分类Dev

接受lambda作为函数参数并提取返回类型

来自分类Dev

接受所有类型作为函数中的参数

来自分类Dev

TypeScript推断接受函数作为参数的函数的返回类型

来自分类Dev

Android kotlin方法接受任何对象类型作为参数

来自分类Dev

接受lambda作为函数参数并提取返回类型

来自分类Dev

嵌套类型作为基类的模板参数

来自分类Dev

未知类型的 Kotlin 类作为方法参数

Related 相关文章

  1. 1

    如何限制方法只接受对象作为参数,而不接受类对象作为类型文字?

  2. 2

    如何使用类的类型作为模板的参数

  3. 3

    如何使Rust函数接受任何浮动类型作为参数

  4. 4

    如何接受非相当通用但动态类型作为子类的参数?

  5. 5

    如何让方法接受两种类型的列表作为参数?

  6. 6

    如何接受 CGFloat 或 CGFloats 数组作为函数参数?

  7. 7

    传递一个接受任意数量和类型参数的函数作为类模板参数

  8. 8

    接受类型或模板作为其参数的模板

  9. 9

    函数接受函数作为模板类型的参数

  10. 10

    接受类型或模板作为其参数的模板

  11. 11

    wse3继承的类类型不作为方法参数接受

  12. 12

    如何使类实例接受参数?

  13. 13

    jQuery为什么接受数组作为参数?

  14. 14

    如何使用模板化类作为参数类型?

  15. 15

    为什么此.NET类不通过继承将该其他父类作为类型参数接受?

  16. 16

    如何使方法将任何类型的数组作为参数?

  17. 17

    如何使Robot Framework函数接受参数作为字符串而不是默认的Unicode类型

  18. 18

    如何创建接受InputStream作为参数的API?

  19. 19

    如何接受异步函数作为参数?

  20. 20

    如何只接受ArrayBuffer作为参数

  21. 21

    如何从不接受 Tensors/NumPy 数组作为参数的函数创建层?

  22. 22

    如何声明一个接受类型化数组参数的函数

  23. 23

    接受lambda作为函数参数并提取返回类型

  24. 24

    接受所有类型作为函数中的参数

  25. 25

    TypeScript推断接受函数作为参数的函数的返回类型

  26. 26

    Android kotlin方法接受任何对象类型作为参数

  27. 27

    接受lambda作为函数参数并提取返回类型

  28. 28

    嵌套类型作为基类的模板参数

  29. 29

    未知类型的 Kotlin 类作为方法参数

热门标签

归档