无法转换“UICollectionViewCell”types的值
我在Storyboard中使用自定义的CollectionViewCell。 当我启动应用程序时,我收到以下消息:
无法将types为“UICollectionViewCell”的值转换为TestProject.CollectionViewCell。
Xcode 6中CollectionViewController的模板在viewDidLoad中附带了这一行代码,它改变了storyboard中的规范。
// Register cell classes self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
只需删除它。
我面对这个问题,因为在viewDidLoad()
我注册我的细胞与UICollectionViewCell类。 在我的cellForItemAtIndexPath
使用CustomSubcalssCollectionViewCell dequeueReusableCell。
确保registerClass和dequeueReusableCell是相同的类来解决问题
self.registerClass(SomeUICollectionCellClass.self, forCellWithReuseIdentifier: reuseIdentifier) let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! SomeUICollectionCellClass
在unit testing中从Storyboard实例化ViewController
时,我遇到了这个错误。
storyboard.instantiateViewControllerWithIdentifier("someVC") as! MyViewController
问题是我已经在“标识”检查器中为故事板中的VC分配了一个特定的模块。 我删除它,所以它默认为当前模块,它是运行时的应用程序模块和testing模块。
当自定义类(在Xcode检查器上)仍将其类设置为默认的UICollectionViewCell而不是我的自定义类TestProject.CollectionViewCell时,我收到此错误。
要修复它,只需将自定义类更改为您的实现。
self.collectionView!.register(MyCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
你不必删除这一行。 如果要使用代码注册类,您将注册由UICollectionViewCell.self
inheritance的自己的单元类