使 Xcode (swift ) 为 print() 抛出错误

Make Xcode (swift )throw error for print()

我创建了一个自定义记录器,用于记录不同模式(如调试、发布)的值,但我希望每当我使用默认值时 print() Xcode 应该抛出一个错误,解释用户使用自定义记录器。

我提到了 this 但想在那里抛出错误,而不是添加构建阶段。

有什么想法吗?

您可以在模块中隐藏内置 print 并将其标记为 "unavailable":

// swift 3:
@available(*, unavailable, message: "use Logger instead!")
internal func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
    Swift.print(items, separator: separator, terminator: terminator)
}

// swift 2:
@available(*, unavailable, message="use Logger instead!")
internal func print(items: Any..., separator: String = " ", terminator: String = "\n") {
    Swift.print(items, separator: separator, terminator: terminator)
}

结果如下:

(还有一个 print<Target>(..., to output: inout Target) 的实例,我懒得隐藏,我想没有人会不小心使用那个功能。)

如图所示,在紧急情况下,您仍然可以使用限定名称Swift.print来引用真正的函数。

请注意,这只会影响您自己的模块。你不能强迫模块外的用户不使用 print.