我制作了一个UIView
子类&想要在initWithFrame:
上执行方法,但是没有调用此方法。
当我从正在执行的initWithCoder:
调用方法时,代码崩溃显示此错误:
由于未捕获的异常'NSGenericException'而终止应用程序,原因:'此编码器要求从初始化编码器方法返回替换的对象:'
我的代码是:
-(void)initialize
{
//code
}
-(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initialize];
// Initialization code
}
return self;
}
- (id)initWithCoder:(NSCoder *)aCoder
{
self = [super initWithCoder:aCoder];
if(self)
{
[self initialize];
}
return self;
}
答案 0 :(得分:6)
您没有从self
方法返回initWithCoder:
。
答案 1 :(得分:5)
也许您在IB或storyBoard中指定此UIView,因此调用initWithCoder。 删除initWithCoder并使用awakeFromNib
- (void)awakeFromNib{
//custom init code
[self initialize];
}
答案 2 :(得分:0)
试试这个。
- (id)initWithCoder:(NSCoder *)aCoder
{
self = [super initWithCoder:aCoder];
if(self)
{
}
return self;
}