嘿伙计们我四处搜寻,仍然无法找到问题的解决方案。我在这里有一个自定义课程:
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
我的故事板中的UICollectionView控制器的父类。我在这里为它创建了一个控制器类:
template< typename T >
struct CRTP
{
void do_it( )
{
static_cast< T& >( *this ).execute( );
}
friend T;
private:
CRTP() {};
};
问题我得到线程1:致命错误:运行此代码时尚未实现init(编码器:)我已经尝试过解决方案:
C
这不起作用。还有其他建议吗?如果您想亲眼看看,我从cocoapod库中获得了这个框架:
pod'LBTAComponents'
我怀疑这个问题与集合视图和故事板有关,但我无法弄明白。
答案 0 :(得分:4)
每当ViewController初始化表单Storyboard / XIB时,它都是通过init(coder: )
您的基类DatasourceController
会覆盖初始化程序
public init() {
super.init(collectionViewLayout: UICollectionViewFlowLayout())
}
required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
所以当你在你的HomeController中调用super.init(coder:...)时,它实际上会调用fatalError("init(coder:) has not been implemented")
似乎谁写了这个类,不是一个伟大的故事板/ xib爱好者。
您可以删除DatasourceController
中的两个初始化工具,但请确保在故事板中设置Flow布局。或者您可以将它们更改为超级电话。
如果无法更改基类,则无法从Storyboard加载VC。