我试图在Swift中打印当前类的名称。更具体地说,我希望实现以下输出:
myFunction() in ClassContainingTheFunction
我可以打印函数名。这是我最近一次打印类名和函数名:
println("\(__FUNCTION__) in \(__FILE__)")
印刷品
myFunction() in path/to/TheFile.swift
而且
println("\(__FUNCTION__) in \(object_getClassName(self))")
印刷品
myFunction() in [mangled class name here]
这两种方法都很接近我想要的,但是路径很长,与我在代码中看到的名称相比,被破坏的类名可能非常不可读。
我的简短回答是,
print(" Function name : \(#function), Class Name : \(self.dynamicType), File Path : \(#file)")
我想要一个解决方案,它可以注销一个漂亮整洁的字符串,比如(Swift 3.0)——类名——函数名。如:
OnboardingGetStartedController-视图加载()
所以我最终得到了一个简短的函数,我把它放在了我的utils类中,像这样:
class func logCurrentFunc(fileStr: String, funcStr: String) {
var fileName = fileStr.components(separatedBy: "/").last ?? ""
fileName = fileName.components(separatedBy:".").first ?? ""
let printFunc = "\(fileName) - \(funcStr)"
print(printFunc)
}
我在应用程序的任何地方都这样称呼它:
Utils.logCurrentFunc(#file, funcStr: #function)
它只是比其他建议更整洁。
因此,您的问题只是所示字符串的长路径。我最好的办法是将字符串缩短为文件名。
var test: String = "/Users/user/Project/classfile.m"
test = test.lastPathComponent // here it is only classfile.m
test = test.stringByDeletingPathExtension // here it is only classfile
因为object_getClassNAme(...)
将使用真正使用的类,而不是像类集群那样使用的名称,所以对您来说这是错误的方法。不过,学习具体类实现名称会更容易。
而不是测试,你用你的方式获取文件名,如__FILE__
。以下代码生成您要查找的输出:
println("\(__FUNCTION__) in \(__FILE__.lastPathComponent.stringByDeletingPathExtension)")
在Swift 2.2中,这些旧标识符被弃用并替换为#file
、#line
、#column
、和#function
。
print("\(#function) in \(#file.components(separatedBy: "/").last ?? "")")
输出示例:
file81.swift
在Swift中,我们不能再使用“self.class”。 我想为NSObject的子类中的描述方法打印自己的类名。 我如何打印它?或者我应该为获得类名做新的方法? 我检查了下面的问题,但是我没有得到答案。 如何在Swift中打印变量的类型或类别? 你如何(在Swift中)找出一个物体的类型? 2014.08.25附言 我检查了这个问题。 快速课堂反思 但是prints”(元类型) 我想在源代码
本文向大家介绍realm 打印文件位置-Swift,包括了realm 打印文件位置-Swift的使用技巧和注意事项,需要的朋友参考一下 示例 将以下行添加到ViewDidLoad方法: 上面的行会将位置打印到Xcode的控制台。复制文件路径,转到Finder →转到→转到文件夹...(或⌘+⇧+ G)→粘贴路径并单击转到。
我正在开发一个Jenkins插件,但我有几个问题,我认为可能是由于插件的类路径中丢失了一个jar,尽管它在插件的WEB-INF/lib目录中。 通常,我会在Java中使用以下代码来打印类路径,但这似乎不适用于Jenkins。 当我执行插件时,上面的代码会导致一个异常与消息 打印Jenkins插件使用的类路径的最佳方式是什么?
问题内容: 有没有一种方法可以快速打印变量的运行时类型?例如: 在上面的示例中,我正在寻找一种方法来表明变量“ soon”的类型为,或至少为。 问题答案: 2016年9月更新 Swift 3.0:使用,例如(因为关键字已删除) 2015年10月更新 : 我将下面的示例更新为新的Swift 2.0语法(例如,已被替换为,现在是)。 从Xcode 6.3发行说明 : @nschum在注释中指出Xcod
问题内容: 有没有一种方法可以使用JSTL或Struts(或不使用)获得当前呈现的JSP?像Python和PHP中的_文件_一样? 问题答案: 好吧…是的…某种程度上 我正在使用一个名为JSP的名称,该名称包含在我的Web应用程序中每个JSP的顶部: 另外,我将其放在每个JSP的末尾: 那给了我一个日志。为了确保每个JSP都是“正确的”,我在构建脚本中进行了检查,该脚本仅查找两个字符串和“ END
问题内容: 我有一个很长的文件要打印,但是例如跳过前1,000,000行。我查看了cat手册页,但是没有看到任何选择。我正在寻找执行此操作的命令或简单的Bash程序。 问题答案: 你需要尾巴。一些例子: 如果您确实需要跳过特定数量的“第一行”,请使用 即,如果要跳过N行,则开始打印N + 1行。例: 如果只想看最后几行,请省略“ +”号: