【问题标题】:UIViewController setValue:forUndefinedKey: with deleted xibUIViewController setValue:forUndefinedKey: 已删除 xib
【发布时间】:2016-02-27 21:17:10
【问题描述】:

我最近删除了特定 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 错误,我希望有人也遇到过这个问题并解决了它。

【问题讨论】:

  • 昨天我为某人回答了这个问题。 stackoverflow.com/questions/33893344/… 参考此链接。
  • 如果可行,请为链接投票。
  • 我知道这个修复。但我的情况不同。关键是 XIB 已被完全删除,并且没有在代码中的任何地方引用
  • 检查是否在删除 nib 后仍从 nib 实例化视图控制器。
  • 是的,我也检查过... xib 根本不存在,也没有引用它

标签: ios xcode uiviewcontroller xib nsunknownkeyexception


【解决方案1】:

请查看连接检查器。 View 是否正确连接到文件的所有者并且 btnBack 连接是否正确删除?

【讨论】:

  • XIB 已被删除,现在一切都在代码中设置。但我仍然遇到这个问题。
  • 我很困惑!声明前是否有 IBOutlet?
  • 以前使用xib时存在的属性,现在xib和属性都被删除了
  • 这是一个 XCode 错误,但我希望有人遇到过同样的问题
【解决方案2】:

我不知道到底发生了什么,但我还没有覆盖类中的 -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;
}

一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2014-09-06
    • 2011-04-15
    • 2022-07-22
    • 1970-01-01
    • 2011-10-23
    • 2014-03-26
    相关资源
    最近更新 更多