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

2024-03-21

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

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

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

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

有任何想法吗?


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

Example:

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

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

Output:



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

For Swift 3,代替CVarArgType by CVarArg.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 中使用 CVaListPointer 参数调用方法 的相关文章

随机推荐