当前位置: 首页 > 面试题库 >

如何快速打印出方法名称和行号

申黎明
2023-03-14
问题内容

这是我想做的一个例子:

func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError)
{
    let  nm =  NetworkModel()
    nm.sendlog("file name :AppDelegate , line number : 288", info: " Failed to register: \(error)")
}

在目前的情况下,我做到了硬编码的价值line numberfile name。但是有可能以编程方式选择line number和选择file name


问题答案:
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.
#dsohandle     UnsafeMutablePointer   The dso handle.

print("Function: \(#function), line: \(#line)")

使用参数中的默认值,您还可以创建一个函数

public func track(_ message: String, file: String = #file, function: String = #function, line: Int = #line ) { 
    print("\(message) called from \(function) \(file):\(line)") 
}

可以这样使用

track("enters app")

在Swift 2.1中

 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.

有关更多信息,请参见文档



 类似资料:
  • 问题内容: 在Swift 2.0中,会自动添加换行符。在迅速1.2,和以前是独立的功能。因此,我如何打印一些文本而不在其中添加换行符,因为swift不再具有不添加换行符的打印功能。 问题答案: 从Swift 2.0开始,不带换行符的推荐打印方法是:

  • 我正在使用ESAPI记录器和log4j提供的记录器。用于配置的xml文件。我成功地打印了日志消息(只是一个带有main方法的平面java程序) 我的log4j.xml文件如下所示 我正在使用这些ESAPI.properties和validation.properties 问题是%M(用于模式布局)没有打印写日志消息的方法的名称。%M总是打印“log”(org . owasp . esapi . l

  • 问题内容: 我正在尝试打印星期几的名称,即星期一,星期二,星期三。我目前有一些代码可以做到这一点。我想知道是否有办法摆脱我的switch语句并使它变得更好。谢谢! 打印“星期一” 问题答案: 您使用了错误的日期格式。正确的格式是。除此之外,您可以使用Calendar属性weekdaySymbols返回本地化的工作日。 另一个选择是使用DateFormatter并将dateFormat设置为,您可以

  • testdate.java:

  • 问题内容: 我在PHP中有一个POST,但我并不总是知道将要处理的变量字段的名称。 我有一个可以遍历值的函数(但是我也想捕获它附带的变量名。) 一旦弄清楚如何获取变量名,我还需要弄清楚如何使函数足够智能以检测和遍历变量的数组(如果存在)(即如果我有一些复选框值)。 问题答案: 如果您只想打印整个$ _POST数组以验证是否正确发送了数据,请使用print_r: 要递归打印数组的内容: 将一些填充应

  • 这是@MatthewD的问题“如何写入Netbeans调试器控制台(Java)”的后续问题 对于NetBeans断点,可以分别使用、和打印行号、类名和线程名。方法名称是否也有类似的表达式? 我测试了和,搜索了NetBeans JPDA API和NetBeans Wiki,但没有找到任何结果。我宁愿在断点的属性中编写,而不是名称本身,因为名称不能被复制粘贴或用作模板。