swift - 当我从依赖项目(框架)调用方法时,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)
我担心某些项目配置可能会导致这种情况..但我需要一些光线来帮助我弄清楚外星人对我的项目做了什么......
提前致谢!
解决方案
我发现问题出在哪里...因此,当您在情节提要上使用 UI 对象时,将项目重构为模块化的每个人都应注意...您必须将模块更改为核心(在我的情况下)
并确保项目中的所有 Bundle.main 都指向 Bundle(identifier: "indetifier.of.framework")
推荐阅读
- node.js - Vorto-Dashboard 不显示设备数据
- oracle - 如何从容器外的 RMAN 备份恢复 docker 中的 oracle 数据库
- javascript - 为什么选择 DOM 元素的常量变量?
- python - 如何识别 Google-Forms em Python?
- javascript - 为什么我在更新 mysql 的 where 子句中出现错误
- vue.js - Nuxt.js 插件仅在刷新后有效
- casting - TCL:一个变量存储一个代表浮点数的十六进制值,如何将其作为浮点数打印在屏幕上?
- reactjs - 反应更新后 useReducer 钩子需要 3 个参数
- perl - Catalyst:将查询参数传递给“转发”调用
- sql - 主键是否可以有两个以上的外键?