【问题标题】:How to exclude project name from NSStringFromClass in Swift?如何在 Swift 中从 NSStringFromClass 中排除项目名称?
【发布时间】:2019-11-05 07:30:45
【问题描述】:

我在Swift 项目中记录class 名称和enums。我在每个实例字符串描述中看到了它附加的项目名称作为前缀。例如,

我创建了NSObject 的扩展,

public extension NSObject {

    var classTag: String {
        return NSStringFromClass(type(of: self))
    }
}

我在AppDelegate中使用,

class AppDelegate: UIResponder, UIApplicationDelegate {

    func testFunc() {
        print(classTag, "Testing log")
    }
}

它的输出是,

TestProject.AppDelegate 测试日志

如何删除TestProject. 并仅打印AppDelegate

注意:当我打印或记录枚举时,它的行为相同(即在描述中自动附加项目名称)

【问题讨论】:

    标签: ios swift logging nslog swift5


    【解决方案1】:

    您可以像这样简单地使用 String(describing:) 而不是 NSStringFromClass

    public extension NSObject {
        var classTag: String {
            return String(describing: type(of: self)) //here....
        }
    }
    

    【讨论】:

    • 它会涵盖NSStringFromClass 涵盖的所有内容吗?
    • 由于您想将类型名称作为String 获取,因此它适用于所有这些情况。
    • 是的,它适用于类,但对于枚举它不起作用。
    猜你喜欢
    • 2016-07-24
    • 2018-04-11
    • 1970-01-01
    • 2017-01-14
    • 2021-09-30
    • 1970-01-01
    • 2019-05-10
    • 2020-04-16
    • 2013-06-10
    相关资源
    最近更新 更多