在 Swift 中记录行号和方法名称

Log line number and method name in Swift

我正在将 Objective C 代码转换为 Swift。找到这段代码:

#define MPLog(fmt, ...) \
    do { \
        if ([MPPush getLoggingPref] && ![MPPush getEnvironmentPref]) { \
            NSLog(fmt, ##__VA_ARGS__); \
        } \
    } while(0)  

我知道这段代码的作用,但我无法转换它。我发现 this 很棒 link 但这只有 Objective C 参考。

Swift 提供了一些用于记录的表达式,其中包括行号和方法名称:

Literal     Type    Value
#file       String  The name of the file in which it appears.
#line       Int     The line number on which it appears.
#column     Int     The column number in which it begins.
#function   String  The name of the declaration in which it appears.

例如:

func logFunctionName(string: String = #function) {
    print(string)
}
func myFunction() {
    logFunctionName() // Prints "myFunction()".
}

有关详细信息,请查看 official documentation