将按钮链接到 IBOutlets 时,Xcode 8 Interface Builder 在类名中放置了错误的空格

Posted

技术标签:

【中文标题】将按钮链接到 IBOutlets 时,Xcode 8 Interface Builder 在类名中放置了错误的空格【英文标题】:Xcode 8 Interface Builder puts erroneous space in class name when linking buttons to IBOutlets 【发布时间】:2017-10-30 20:12:04 【问题描述】:

我的应用程序中有一堆按钮、标签、文本字段等,它们在插座/操作中运行良好。我已经克服了几种类型的问题,必须手动检查它们是否链接到 IB,在加载之前不使用它们等等。

但是,现在我有一个视图控制器,它有一个用于视图的 Google 地图(没有理由怀疑这是相关的,但也许你有)和一个我希望的按钮开始隐藏,然后在事件发生后显示。我得到了错误:

unexpectedly found nil while unwrapping an Optional value

当我打电话时:

myButton.isHidden = true

从我的观点DidLoad()。我在顶部有插座,但是,正如问题标题所述,类名中有一个空格。我的视图控制器名为MyCoolVC,但连接检查器中引用插座下的插座说它链接到My CoolVC。我怀疑这会导致插座出现故障。

我认为这可能与将视图控制器的“视图”属性设置为 GMSMapView 对象有关,但我将这些行注释掉了,它仍然在视图出现之前崩溃。

有什么想法吗?

【问题讨论】:

【参考方案1】:

对我来说听起来很熟悉。你是否重载loadView 来设置GoogleMap?如果是这样,它发生的原因是当前加载的视图 xibstoryboard 和您覆盖的视图不同。如果您想将GMSMapViewxibstoryboard 一起使用,则必须手动实例化谷歌地图视图,而不是使用loadView

【讨论】:

哦,哇,有趣...现在我怎么会弄明白!谢谢,我现在就试试这个! 我想我永远也不会知道为什么会有那个空间,但你的回答解决了我的问题。这个基本原则也被证明是我后来遇到的其他问题的情况。

以上是关于将按钮链接到 IBOutlets 时,Xcode 8 Interface Builder 在类名中放置了错误的空格的主要内容,如果未能解决你的问题,请参考以下文章

我无法在 ViewController.swift 中链接 IBOutlets

将 IBOutlets 连接到 UITableViewCell 原型

XCode 6.1 (6A1052d) 上未显示 IBOutlets

按钮到 XIB 链接,带我进入空白屏幕(Xcode)

在 Segue 之后失去@IBOutlets

IBOutlets 和 IBActions 未显示在 main.storyboard 的视图控制器中