我创建了一个自定义Logger,用于记录调试,发布等不同模式的值,但我希望每当我使用默认的print()
时,Xcode都会抛出错误,解释用户使用自定义记录器。
我提到this但是想在那里抛出错误,而不是添加构建阶段。
任何想法?
答案 0 :(得分:2)
您可以隐藏模块中的内置print
并将其标记为“不可用”:
// 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
。