2

我有一个最小的工作项目,如果用 Xcode 8.3.3 编译它会给我 EXC_BAD_ACCESS。该项目是一个简单的 VIPER 模块实现。Swinject 被用于创建模块本身以及所有依赖项。

我如何解决问题(或认为我解决了):

  1. 通过删除 SwinjectBug 目录的引用并重新添加解决了几天前的问题。但是,这不再起作用了。

什么仍然解决了这个问题:

  1. 使用相同的 iPhone 型号和 iOS 版本在 Xcode 9-beta 中编译和运行可以完美运行。[这个观察可能是错误的。一直不工作]
  2. 如果我强制 cast output as! SplashScreenPresenter,代码可以正常工作。

可能的场景:

  1. Xcode 8.3.3 中存在一个错误,在 Xcode 9 中已解决但如果上述情况属实,则其他模块应该失败但事实并非如此。
  2. 我使用 Swinject 的方式有问题。

您可以编译并运行该项目。

我在用:

  1. iPhone 6s 64GB 上的 iOS 10.3.1
  2. Xcode 8.3.3

EXC_BAD_ACCESS 发生在 SplashViewController 中,在输出时调用 viewIsReady

    override func viewDidLoad() {
    super.viewDidLoad()
    output.viewIsReady()
}
4

0 回答 0