【发布时间】:2017-07-30 21:57:23
【问题描述】:
我正在用 Swift 构建一个框架,但我不确定处理以下情况的正确方法。
let path = bundle.path(forResource: type.rawValue, ofType: "sks")!
如您所见,我正在强制解开 path(forResource:ofType:) 的结果。由于我正在编写框架我知道,我正在加载的文件将始终存在于包中。所以我不应该担心强制展开命令的危险。
但是...
...该框架将作为开源发布。
因此,从技术上讲,开发人员将能够(即使他们不应该)删除我正在加载的资源。在这种情况下,当然,前面的指令会使整个应用程序崩溃。
这就是我想知道的原因:我是否采用了正确的方法?我应该用guard 替换每个强制解包指令,以使框架“防黑客”吗?
【问题讨论】:
标签: swift frameworks fatal-error forced-unwrapping