- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在与一个 C 库 - liblinphone 集成。它具有以下 typedef 和我需要从我的 Swift 3 iOS 应用程序调用的函数。
typedef void (*OrtpLogFunc)(const char *domain,
int lev,
const char *fmt,
va_list args);
void linphone_core_set_log_handler(OrtpLogFunc logfunc);
va_list
为模拟器编译时与为设备编译时不同。
class MyClass {
func setupLogging() {
linphone_core_set_log_handler(my_callback)
}
}
func my_callback(_ domain: Optional<UnsafePointer<Int8>>,
level: OrtpLogLevel,
format: Optional<UnsafePointer<Int8>>,
args: CVaListPointer?) { // NOTE: Optional CVAListPointer
// do some logging
}
class MyClass {
func setupLogging() {
linphone_core_set_log_handler(my_callback)
}
}
func my_callback(_ domain: Optional<UnsafePointer<Int8>>,
level: OrtpLogLevel,
format: Optional<UnsafePointer<Int8>>,
args: CVaListPointer) { // NOTE: CVAListPointer is NOT optional
// do some logging
}
Swift Compiler Error
C function pointer signature
'(Optional<UnsafePointer<Int8>>, OrtpLogLevel,
Optional<UnsafePointer<Int8>>, CVaListPointer?) -> ()'
is not compatible with expected type 'OrtpLogFunc' (aka
'@convention(c)
(Optional<UnsafePointer<Int8>>, OrtpLogLevel,
Optional<UnsafePointer<Int8>>, CVaListPointer) -> ()')
Swift Compiler Error
Cannot convert value of type
'(Optional<UnsafePointer<Int8>>, OrtpLogLevel,
Optional<UnsafePointer<Int8>>, CVaListPointer) -> ()'
to expected argument type 'OrtpLogFunc!'
最佳答案
您最好将错误报告发送至 Apple或 swift.org尽快地。
而且,在这个问题得到解决之前,这种编码将是一种解决方法:
let my_callback: OrtpLogFunc = {domain, level, format, _args in
let args: CVaListPointer? = _args
// do some logging
}
关于ios - Swift 3 CVaListPointer 类型冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43033029/
我正在与一个 C 库 - liblinphone 集成。它具有以下 typedef 和我需要从我的 Swift 3 iOS 应用程序调用的函数。 typedef void (*OrtpLogFunc)
我应该如何调用下面的方法?该方法属于打印日志的类。 func log(format: String!, withParameters valist: CVaListPointer) 我想要实现的目标在
我正在将我的代码更新到 swift 3.0。我将 Realm 用于数据库。我有以下代码行: let thisJob = Jobs.objectsWhere("identifier == '\(iden
问题 有人可以解释一下这些参数类型之间的区别吗?此外,如果可能,请使用代码提供适当的用例(它值得 1000 字)。 注意事项 如果需要更多信息,请在评论中告诉我。 背景 我试图了解以下结构之间的任何差
我有这个代码: let articleConflict = Article.objectsWhere("title = 'test'") 我收到这个错误: Type '(String!, args:
我是一名优秀的程序员,十分优秀!