相关疑难解决方法(0)

什么是 Foundation._GenericObjCError.NilError?

我正在从 Swift 调用一些旧的 Objective-C 代码,它经常会抛出这个错误,即使看起来没有出错:

do {
    try objCObject.someMethod()
}
catch {
    print(error)
    // Trying to handle the error here
}
Run Code Online (Sandbox Code Playgroud)

该方法的 Objective-C 签名如下所示:

- (BOOL) someMethodWithError: (NSError **) outError;
Run Code Online (Sandbox Code Playgroud)

在内部放置一个断点,catch我可以使用 LLDB 控制台看到这一点。

(lldb) po error
Foundation._GenericObjCError.nilError

(lldb) po error as NSError
Error Domain=Foundation._GenericObjCError Code=0 "(null)"
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,我该如何处理?当我尝试在 Swift 中为此编写一个特殊案例时,我得到了这个:

/Path/To/My Code.swift:200:27: error: module 'Foundation' has no member named '_GenericObjCError'
                    catch Foundation._GenericObjCError.nilError {
                          ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

runtime-error objective-c swift

5
推荐指数
1
解决办法
2128
查看次数

标签 统计

objective-c ×1

runtime-error ×1

swift ×1