将按钮链接到 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
?如果是这样,它发生的原因是当前加载的视图 xib
或 storyboard
和您覆盖的视图不同。如果您想将GMSMapView
与xib
或storyboard
一起使用,则必须手动实例化谷歌地图视图,而不是使用loadView
。
【讨论】:
哦,哇,有趣...现在我怎么会弄明白!谢谢,我现在就试试这个! 我想我永远也不会知道为什么会有那个空间,但你的回答解决了我的问题。这个基本原则也被证明是我后来遇到的其他问题的情况。以上是关于将按钮链接到 IBOutlets 时,Xcode 8 Interface Builder 在类名中放置了错误的空格的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 ViewController.swift 中链接 IBOutlets
将 IBOutlets 连接到 UITableViewCell 原型