iPhone - 从nib文件加载UIView?

ary*_*axt 4 iphone objective-c uiview subclassing

我正在子类化UIView尝试从nib文件加载我在界面构建器中删除的视图.我在返回行上收到以下错误:

由于未捕获的异常'NSGenericException'而终止应用程序,原因是:'此编码器要求从initWithCoder返回替换的对象:'

- (id)initWithCoder:(NSCoder *)aDecoder
{
    [super initWithCoder:aDecoder];
    NSArray *objects = [[NSBundle mainBundle]
                        loadNibNamed:@"MyView" 
                        owner:nil 
                        options:nil];
    if (self = [objects objectAtIndex:0])
    {
    }
    return [self retain];
}
Run Code Online (Sandbox Code Playgroud)

Yur*_*ras 14

你做的很奇怪)

loadNibNamed:owner:options:将调用initWithCoder:从xib实例化您的视图.但你打电话loadNibNamed:owner:options:initWithCoder:.无限递归?

要从xib加载视图,您可以执行下一步:

@implementation MyView

+ (MyView*) myView
{
  NSArray* array = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
  return [array objectAtIndex:0]; // assume that MyView is the only object in the xib
}

@end
Run Code Online (Sandbox Code Playgroud)