使 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
.
我创建了一个自定义记录器,用于记录不同模式(如调试、发布)的值,但我希望每当我使用默认值时 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
.