无法实例化名为IBNSLayoutConstraint的类

 靖憐兵役_523 发布于 2023-01-11 11:01

我正在使用XCode6 beta并试用Swift.当我在视图控制器中放置一些自动布局约束时,应用程序崩溃并出现以下错误: Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named IBNSLayoutConstraint'

2 个回答
  • 您收到此错误是因为您已将约束设置为在运行时删除的IBOutlet.在Interface Builder中将约束设置为占位符时会发生这种情况.由于约束被删除,当它取消归档时,它会抛出一个错误,说它不能这样做.

    有两种方法可以解决这个问题.

    方法1

      右键单击故事板>打开为>源代码

      在打开的故事板xml中,搜索placeholder="YES".

      您将找到设置为在运行时删除的约束.从约束中删除占位符属性,保存并关闭.

      运行应用程序,您的问题应该得到解决.

    方法2

      在Interface Builder中找到导致问题的约束.取消选中GUI中的Placeholder选项.这应该是在ViewController中设置为导致崩溃的IBOutlet的约束之一.

    Interface Builder属性编辑器,显示选中的占位符选项.

    它应该是这样的:

    Interface Builder属性编辑器显示未选中的占位符选项.

    替代

    假设您确实希望约束为占位符,那么您将需要删除任何引用插座.为此,请选择您希望成为占位符的约束.然后打开连接检查器(最右边的按钮,如下所示:( - >)),然后删除该约束上可能存在的任何引用出口.

    2023-01-11 11:04 回答
  • 我刚才遇到了同样的问题,以下内容对我有用.

    我将我的应用程序的一个工作版本发布到App Store,几天后再次回到它上面,点击UITabBarController中的一个标签,它崩溃了,出现了错误:

    Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named IBNSLayoutConstraint'
    

    我没有任何我知道的占位符布局约束或约束不应该定义的出口.

    我的解决方案是简单地关闭大小类并保留iPhone的大小类数据(App仅适用于iPhone).这肯定删除了我在尺寸类中错过的任何东西.我想要大小类,所以我重新打开它们,应用程序再次运行.

    2023-01-11 11:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有