Swift 4:@IBOutlet UITextView 崩溃

Posted

技术标签:

【中文标题】Swift 4:@IBOutlet UITextView 崩溃【英文标题】:Swift 4: @IBOutlet UITextView crash 【发布时间】:2018-01-31 14:42:47 【问题描述】:

我使用嵌入在视图控制器中的表格视图。我在表格视图中存储了一些项目,如UITextFieldUISlider 等。当我在课堂上连接这些项目时,应用程序在UITextView 插座上崩溃。

@IBOutlet weak var nameProfileTextField: UITextField!
@IBOutlet weak var ageSlider: UISlider!
@IBOutlet weak var descriptionProfileTextView: UITextView! //Crash here!

错误消息对我没有帮助。控制台仅显示以下消息,没有更多详细信息。

以 NSException 类型的未捕获异常终止

@IBOutlet 连接似乎没问题,如下图所示。

【问题讨论】:

您是否尝试过清理构建文件夹?并重新启动 Xcode :) 尝试删除连接(插座)并重新连接 控制台应该说更多,确定它没有说“在展开可选时发现意外的 nil”? 感谢您的回答。我已经尝试重新启动Xcode,清除项目,再次连接uitextView并删除UITextView并再次连接。没有成功。 @MaximZakopaylov,你是对的。 UITableViewCell 上未连接插座。它们通过 UITableViewController 连接。 【参考方案1】:

删除连接并重新连接。检查文件和情节提要中的类名是否相同。

【讨论】:

感谢您的回答,Artyon。我已经尝试删除并重新创建连接但没有工作。后面我会再检查一下类名,但是其他的IBOutlets在同一个表中,不会触发错误。 嗯,奇怪,需要更多信息或截图。 @恩佐【参考方案2】:

您的 IBOutlet 链接界面构建器相关的 UIViewController 似乎没问题。

可能是 UIViewController 上的 IBOutlet 有超过 1 个与之关联的指针。

如果你在相关的 UIViewController 中右击 IBOutlet 左侧的灰点,是否只有 1 个引用?

例如

如果这不起作用,我建议在界面生成器中删除 UIViewController 并重新开始。

【讨论】:

工作。我删除了视图控制器和表视图控制器。之后我再次创建了所有项目:View Controller、Table View Controller、UITextView、UITextField 等等,我确实重新连接了 UITextView 和 UITableViewController 类上的其他元素。谢谢@kd02 并感谢所有回答的人。

以上是关于Swift 4:@IBOutlet UITextView 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 以编程方式分配 IBOutlet?

swift 协议,IBOutlet 属性不能有非对象类型

无法在 Swift 2 中将 TableView @IBOutlet 连接到 ViewController

Swift 中的 UIView 子类:IBOutlet 在展开时发现为零

Swift ios将多个项目连接到同一个IBOutlet

接口生成器、@IBOutlet 以及 Swift 中委托和数据源的协议