我知道c ++异常和Swift异常(基本上是NSError **的语法糖)完全不同。
我的问题是,当objective-c ++代码调用Swift回调时,我可以期待安全/理智的行为吗?Swift回调调用Objective-c ++代码,抛出异常,原始调用者捕获所述异常。这是在某处记录的吗?
就我而言,Swift部分的作者会意识到这种情况,因此请从建筑的角度避免提出为什么要避免这种情况的建议。我的问题更像是,Swift对象是否会被ARC(自动)发布,并且还需要进行任何其他运行时级别的清理。
答案 0 :(得分:1)
Swift C++ 互操作性宣言设定了关于 C++ 异常冒泡到 Swift 的预期即将到来的期望(但不是从 Swift 代码 [例如,任何类型的回调] 由 C++ 调用,其中被调用的 Swift 代码抛出异常的情况) )。 https://github.com/apple/swift/blob/main/docs/CppInteroperabilityManifesto.md#exceptions