Xcode 8 Interface Builder 在将按钮链接到 IBOutlets 时将错误的 space 放入 class 名称中

Xcode 8 Interface Builder puts erroneous space in class name when linking buttons to IBOutlets

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

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

unexpectedly found nil while unwrapping an Optional value

当我打电话时:

myButton.isHidden = true

来自我的 viewDidLoad()。我的插座在上面,但是,正如问题标题所述,class 名称中有一个 space。我的视图控制器名为 MyCoolVC,但连接检查器中引用插座下的插座说它链接到 My CoolVC。我怀疑这是导致插座出现故障的原因。

我认为这可能与将视图控制器的 "view" 属性 设置为 GMSMapView object 有关,但我将这些行注释掉了,它仍然在出现视图。

有什么想法吗?

我听起来很熟悉。您是否正在重载 loadView 以设置 GoogleMap?如果是这样,它发生的原因是 xibstoryboard 加载的视图与您覆盖的视图不同。如果要将 GMSMapViewxibstoryboard 一起使用,则必须手动实例化 google 地图视图,而不是使用 loadView.