我试图将单元格转换为动态类类型:
struct Item {
var cellClass: AnyClass
}
let cellClass = item.cellClass
let cell: cellClass = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)
但是,我收到了错误消息:
cellClass is not a type
这样做的正确方法是什么?
答案 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
。