Swift将变量转换为变量类

时间:2015-11-25 18:21:31

标签: swift

我试图将单元格转换为动态类类型:

struct Item {
    var cellClass: AnyClass
}


let cellClass = item.cellClass
let cell: cellClass = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)

但是,我收到了错误消息: cellClass is not a type

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

AnyClass定义为AnyObject.Type,您无法创建AnyObject类型的实例,它没有公共初始值设定项...

但是,如果您知道所有单元格都是UITableViewCell的子类型,您可以使用以下内容执行您想要的操作:

struct Item {
    var cellClass: UITableViewCell.Type
}

class Test: UITableViewCell {
    var str = ""
}

// create an instance of Item with the class Test
let i = Item(cellClass: Test.self)

// then create an instance of Test by using the instance of Item
var t = i.cellClass.init()

然后,当您询问if t is Test时,它会说true