首页 > 解决方案 > 当我从依赖项目(框架)调用方法时,Swift 应用程序崩溃

问题描述

我试图在我的项目中创建一个模块化架构,但我遇到了一个非常奇怪的错误。

我有一个名为 Application 的项目和另一个名为 Core 的项目。

在“应用程序”中,我有一个故事板,它有一个 HomeViewController 导入核心。

在 HomeViewController 的 ViewDidLoad 中,我有一个名为 btnLater 的自定义按钮,类型为 RGButton,它在核心项目中声明。

当我键入“self.btnLater”时,Xcode 的自动完成功能会识别公共方法。或“RGButton”。

核心项目上的 RGButton 类:

public class RGButton: UIButton {

// corner radius
public func borderRadius(radius : CGFloat) {
    self.layer.cornerRadius = radius
}
...

应用程序项目上的 HomeViewController ViewDidLoad()

...
self.btnLater.layer.cornerRadius = 4
self.btnLater.borderRadius(radius: 4.0)
...

所以当我运行项目时......就行了

self.btnLater.layer.cornerRadius = 4

没有崩溃...但是就行了

self.btnLater.borderRadius(半径:4.0)

它崩溃并出现以下错误:

线程 1:EXC_BAD_ACCESS(代码=257,地址=0x1a258656e61)

我担心某些项目配置可能会导致这种情况..但我需要一些光线来帮助我弄清楚外星人对我的项目做了什么......

提前致谢!

标签: swiftxcodecrashframeworksdependencies

解决方案


我发现问题出在哪里...因此,当您在情节提要上使用 UI 对象时,将项目重构为模块化的每个人都应注意...您必须将模块更改为核心(在我的情况下)

并确保项目中的所有 Bundle.main 都指向 Bundle(identifier: "indetifier.of.framework")


推荐阅读