我想将泛型约束为可以用C表示的类型.在Swift标准库中是否存在所有C类型符合的协议或类型?
func doWithCType<T:CRepresentable>(cValue: T) {
// do thing with C type
}
Run Code Online (Sandbox Code Playgroud)
如果不是CRepresentable,可能是CStruct类型?
线索:
使用此C类型:
typedef struct {
int hodor;
} Hodor;
Run Code Online (Sandbox Code Playgroud)
我强制将结构转换为不兼容的类型(导致崩溃).这是错误消息:Could not cast value of type '__C.Hodor' (0x1035c0700) to 'Swift.CVarArg' (0x107196240).
我无法在任何地方找到"__C",但我希望C类型有所区别.
是Swift.CVarArg你需要什么?它用于可以通过C的va_listvarargs机制传递的类型。
也有CVaListPointer,相当于va_list *。出现在的参数中String(format:)。
https://developer.apple.com/documentation/swift/cvararg https://developer.apple.com/documentation/swift/cvalistpointer
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |