遇到一个需要使用外部框架和捆绑软件的问题。
虽然导入了框架并且可以很好地调用其功能,但是其中一种方法尝试从随附的包中加载笔尖,由于原因,该包以NSInternalInconsistencyException
结尾
“无法在捆绑包中加载NIB”。
我注意到,当捆绑包位于“复制捆绑包资源”中并且可以通过调用Bundle.allBundles
来找到时,错误消息指出捆绑包为"not yet loaded"
。我应该做些什么,以便可以事先装入捆绑包吗?
更新:我之前没有提供相关代码,因为该错误是作为框架调用的附带影响而发生的,因此我不确切知道笔尖是如何“加载”的。 代码本身是这样的:
if let request = AUTRequest.init(transactionType: .debitGeneric) {
AUTCTFClient.executeTransaction(with: request, from: self) { (_response) in
if let response = _response {
print(response)
}
}
}
self
是当前的视图控制器,并且错误发生在executeTransaction
调用之后但执行响应块之前。
这是否与不加载Bundle有关,还是框架本身存在问题?
答案 0 :(得分:0)
如果您正在使用代码来加载笔尖,则需要确保从正确的捆绑软件中加载它:
let bundle = Bundle(for: ClassName.self)
let view = bundle.loadNibNamed("nib_name", owner: nil, options: nil)![0]
如果您使用情节提要,请确保选择正确的Module(框架)。您可以在Identity Inspector中选择模块(在界面构建器中,按cmd + alt + 3)。
答案 1 :(得分:0)
尝试查找解决方案一段时间后,最明显的答案是所讨论的框架是用缺少的文件编译的,“ AUTCTFClient.executeTransaction”试图在其执行中调用。较早版本的框架“证实”了这一点,该框架显示了执行过程中的某种进度视图。 (但遗憾的是,它们在我们的案例中不可用)
如果您因某种原因遇到了此问题,最好向所有者(或进行搜索)询问其框架的更新版本或稳定版本。