我们有一个特殊的日志记录功能,它代表特定类型的崩溃,因此,它在内部调用fatalError。但是,与fatalError不同,当我们在guard语句中使用它时,它仍然抱怨我们没有退出guard的范围。

我检查了源代码,然后fatalError返回-> Never,所以我尝试了一下,但是那也不起作用。我也没有看到任何适用于它的属性,可能会告诉编译器“这是路的尽头”。

那么有可能拥有自己的类似fatalError的方法吗?

func myFatalError(memberName:String = #function) -> Never {
    let message = "Failed in \(memberName)"
    NSLog(message)
    fatalError(message)
}

最佳答案

正如其他人指出的,这个问题是我机器上的特定问题。以下内容(返回“从不”)将按预期工作。

func myFatalError() -> Never {
    print("Doing something fatal")
}

08-15 20:09