swift - 如何在 Swift 中使用 CVaListPointer 参数调用方法

标签 swift logging swift2 nslog

我应该如何调用下面的方法?该方法属于打印日志的类。

func log(format: String!, withParameters valist: CVaListPointer)

我想要实现的目标在 Objective-C 中看起来像这样:

NSLog(@"Message %@ - %@", param1, param2);

有什么想法吗?

最佳答案

CVaListPointer 是 C va_list 类型的 Swift 等价物 并且可以使用 withVaList()[CVarArgType] 数组创建。

例子:

func log(format: String!, withParameters valist: CVaListPointer) {
    NSLogv(format, valist)
}

let args: [CVarArgType] = [ "foo", 12, 34.56 ] 
withVaList(args) { log("%@ %ld %f", withParameters: $0) }

输出:

2016-04-27 21:02:54.364 prog[6125:2476685] foo 12 34.560000

对于 Swift 3,将 CVarArgType 替换为 CVarArg

关于swift - 如何在 Swift 中使用 CVaListPointer 参数调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36898427/

相关文章:

ios - 如何在swift中从被调用方法中识别调用方法

java - Hibernate Envers - 请求更改对象列表

ios - 从 Firebase 检索数据后,如何将检索到的数据从一个 View Controller 发送到另一个 View Controller ?

ios - 无法在 swift 中调用非函数类型 'CLLocationCordinate2d' 的值

ios - SwiftUI - 如何模糊 View 的默认背景颜色?

ios - 无法获取 url 的下划线并检测 url 后的空格

ruby - 如何从 Sinatra 模型访问记录器?

c++ - boost 记录器刷新到文件

swift - 我需要在每周的特定日期设置通知..但我不在乎这个月的哪一天

ios - 优化级别影响比较枚举