首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IBOutlet的崩溃

IBOutlet的崩溃
EN

Stack Overflow用户
提问于 2016-03-15 22:42:22
回答 2查看 797关注 0票数 2

我在swift中用xib写了一个自定义视图。视图显示正确,@IBAction也是正确的。但是当我添加一个@IBOutlet时,应用程序就会崩溃。

错误消息为:

代码语言:javascript
运行
复制
2016-03-15 22:32:16.650 ****[42692:1015001] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x7f8ea483cd30> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key cancelBtn.'

和xib:

代码是:

代码语言:javascript
运行
复制
 class PYChangeNameView: UIView { 
  var confirmAction: ((name: String?) -> ())? 
  var cancelAction: (() -> ())? 

  @IBOutlet weak var cancelBtn: UIButton! 

  private init() { 
   super.init(frame: CGRectZero) 
   if let view = UIView.loadFromNibNamed("PYChangeNameView") {    
    view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 
    self.frame = UIScreen.mainScreen().bounds self.addSubview(view) 
   } 
  }

  @IBAction func cancelClick(sender: AnyObject) {
    PYCNVStaticValues.sharedInstance?.removeFromSuperview()
    PYCNVStaticValues.cancelAction?()
  }
}

@IBAction工作正常,但@IBOutlet无法正常工作。}

EN

回答 2

Stack Overflow用户

发布于 2016-03-15 23:40:20

看一下错误:它告诉您NSObject没有cancelBtn字段。为什么会这样呢?

查看您的屏幕截图,我可以看到您的File's Owner上设置了cancelBtn插座。(插座应该设置为您的自定义视图。)

因此,我可以得出结论,您的File's Owner对象没有正确地与您的PYChangeNameView关联,并且运行时认为它只是一个NSObject。我认为您需要在您的XIB中将该类设置为类型-可能是在右侧的控件中。

看看我捕捉到的这张漂亮的视网膜质量的屏幕截图:

可能还需要设置Module字段。您可能会从this answer获得一些见解。

票数 3
EN

Stack Overflow用户

发布于 2016-03-15 23:45:49

检查以确保视图的xibPYChangeNameView

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36014433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档