UIViewController setValue:forUndefinedKey: 已删除 xib
UIViewController setValue:forUndefinedKey: with deleted xib
我最近删除了特定 UIViewController 子类的 xib。但是,从那以后我只在设备上收到以下错误,而不是在模拟器上:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<CustomWebViewController 0x192494d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key btnBack.'
我之前在 XIB 中将 btnBack 设置为 IBOutlet,此后删除了 属性。
XIB被删除了,我也清理了无数次项目,但是这个问题仍然存在。
我如何才能在我的代码中找到这个 属性 的设置位置,或者如何在 XCode 中解决这个问题?
编辑:
为了明确这一点:
- xib 曾经存在,但后来被删除了。
- 所有 IBOutlet 属性也已删除。
- viewController 的实例化仅使用代码。
- 如果我没有删除这些属性,就不会发生这种情况。
- 这可能是一个 XCode 错误,我希望有人也遇到过这个问题并解决了它。
请查看连接检查器。
View 是否正确连接到 File 的所有者并且 btnBack 连接是否正确删除?
我不知道到底发生了什么,但我还没有覆盖 class 中的 -init 方法。
像这样覆盖所有初始化方法后:
-(instancetype)init
{
if (self = [super init])
{
}
return self;
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder])
{
}
return self;
}
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
{
}
return self;
}
一切正常。
我最近删除了特定 UIViewController 子类的 xib。但是,从那以后我只在设备上收到以下错误,而不是在模拟器上:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<CustomWebViewController 0x192494d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key btnBack.'
我之前在 XIB 中将 btnBack 设置为 IBOutlet,此后删除了 属性。
XIB被删除了,我也清理了无数次项目,但是这个问题仍然存在。
我如何才能在我的代码中找到这个 属性 的设置位置,或者如何在 XCode 中解决这个问题?
编辑: 为了明确这一点:
- xib 曾经存在,但后来被删除了。
- 所有 IBOutlet 属性也已删除。
- viewController 的实例化仅使用代码。
- 如果我没有删除这些属性,就不会发生这种情况。
- 这可能是一个 XCode 错误,我希望有人也遇到过这个问题并解决了它。
请查看连接检查器。 View 是否正确连接到 File 的所有者并且 btnBack 连接是否正确删除?
我不知道到底发生了什么,但我还没有覆盖 class 中的 -init 方法。
像这样覆盖所有初始化方法后:
-(instancetype)init
{
if (self = [super init])
{
}
return self;
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder])
{
}
return self;
}
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
{
}
return self;
}
一切正常。