由于未捕获的异常,我在终止应用程序时出错
'NSUnknownKeyException', reason: '[<KGM_IOS.NotEkle 0x7fcb5ee0cd40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key notEkleTextView.'.
我有一个名为“ notEkle”的XIB,在“ notEkle”内部,我有UITextView,而XIB提供程序是ViewController。当我将此文本与控制器连接时,出现此错误。我将XIB加载到控制器中,例如
let notEkleView: UIView = NotEkle().loadNib() as UIView
我将文本视图与控制器连接
@IBOutlet weak var notEkleTextView: UITextView!
在连接UITextview和控制器之前,我没有任何问题。
let notEkleView: UIView = NotEkle().loadNib() as UIView
extension UIView {
func loadNib() -> UIView {
let bundle = Bundle(for: type(of: self))
let nibName = type(of: self).description().components(separatedBy: ".").last!
let nib = UINib(nibName: nibName, bundle: bundle)
return nib.instantiate(withOwner: self, options: nil).first as! UIView
}
}
答案 0 :(得分:2)
一切都适合我,但仍然出现此错误,然后我通过以下方式解决了
答案 1 :(得分:1)
有几个步骤来定义XIB并以编程方式使用它。
首先,您需要创建具有相同名称的XIB文件和Swift文件。
根据需要进行设计,然后将文件的所有者连接为您在步骤1中定义的类名称。
您需要定义一个通用的初始化方法,并覆盖两个初始化方法(使用帧和编码器)。
在XIB中将整个视图作为Swift类中的IBOutlet进行连接。
实施通用初始化程序,如下所示:
private func commonInitializer() {
Bundle.main.loadNibNamed("testView", owner:self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleHeight,.flexibleWidth]
}
有关更多详细信息,您可以查看本教程here
答案 2 :(得分:0)
在声明类的连接出口后,就像将其从xib文件拖到类(所有者)中一样,它应该像这样:
@IBOutlet weak var notEkleTextView: UITextView!
在您的情况下,它不能正常工作,这意味着您还提供了其他课程
您的视图控制器的xib中的类可能错误。 检查文件所有者,并在VC中检查文件检查器是否正确分配了类
答案 3 :(得分:0)
请确保以下内容:
答案 4 :(得分:0)
答案 5 :(得分:0)
init(pages : [Page],holder : UIView) {
self.pages = pages
self.holder = holder
super.init(nibName: "PagerViewNew", bundle: nil)
}
我放了“ PagerView”而不是“ PagerViewNew”
答案 6 :(得分:0)
我重新构建了项目,并添加了故事板,但出现了这个错误。我通过选择正确的项目模块来解决它。故事板> ViewController> Identity Inspector>模块