我正试图重写我的日志(log)类,我想知道如何在swift文件中替换PRETTY_FUNCTION或NSStringFromSelector(_cmd),以便跟踪方法调用?

推荐答案

看看我刚刚出版的一个新图书馆:https://github.com/DaveWoodCom/XCGLogger

这是Swift的调试日志(log)库.

能够使用#function个宏的关键是将它们设置为日志(log)功能的默认值.然后,编译器将使用预期值填充它们.

func log(logMessage: String, functionName: String = #function) {
    print("\(functionName): \(logMessage)")
}

然后打电话:

log("my message")

它能像预期的那样工作,给你一些东西,比如:

whateverFunction(): my message

更多关于如何工作的信息:https://www.cerebralgardens.com/blog/entry/2014/06/09/the-first-essential-swift-3rd-party-library-to-include-in-your-project

Swift相关问答推荐

Accelerate的SparseMultiply随机崩溃,EXC_BAD_ANCE

Swift UI在视图中排序不同的 struct

在Swift中,是否只有iOS版本超过15才能导入Swift包?

在SWIFT中使用Objective-C struct 时出错(在作用域中找不到类型)

了解SWIFT中的命名VS位置函数调用

为什么要在SWIFT RandomAccessCollection协议中重新定义元素类型?

KMM-Swift铸造密封类

可以将属性名称传递给 Swift 中的函数吗?

需要将 json 映射到 Swift 中的模型

在 SwiftUI 中将属性显式设置为其默认值

闭包 - deinit self 对象的时间

SwiftUI - Select 器没有 Select 值

将 struct 作为泛型类型传递并访问该泛型类型属性

您可以在运行时访问 Picker 元素并更改它们的 colored颜色 吗

在 RealityKit 中创建转场

在 Swift 中实现自定义异步序列

如何在不阻塞 UI 更新的情况下使用 Swift Concurrency 在后台执行 CPU 密集型任务?

UITableViewAlertForLayoutOutsideViewHierarchy 错误:仅警告一次(iOS 13 GM)

UISearchbar TextField 的高度可以修改吗?

SwiftUI:将多个 BindableObjects 放入环境