Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法将kotlin.UInt强制转换为kotlinx.cinterop.CValuesRef_Ios_Kotlin_Kotlin Multiplatform - Fatal编程技术网

Ios 无法将kotlin.UInt强制转换为kotlinx.cinterop.CValuesRef

Ios 无法将kotlin.UInt强制转换为kotlinx.cinterop.CValuesRef,ios,kotlin,kotlin-multiplatform,Ios,Kotlin,Kotlin Multiplatform,未捕获的Kotlin异常:Kotlin.ClassCastException:Kotlin.UInt无法强制转换为kotlinx.cinterop.CValuesRef 在Kotlin Multiplatform中使用以下代码进行iOS的SSL固定 SecTrustEvaluate(serverTrust!!,结果为CValuesRef)无法将值强制转换为指针类型。您需要分配本机内存,将值放入其中,然后将指向该内存的指针传递到函数中。最后,它必须看起来像: memScoped{ val

未捕获的Kotlin异常:Kotlin.ClassCastException:Kotlin.UInt无法强制转换为kotlinx.cinterop.CValuesRef

在Kotlin Multiplatform中使用以下代码进行iOS的SSL固定


SecTrustEvaluate(serverTrust!!,结果为CValuesRef)

无法将值强制转换为指针类型。您需要分配本机内存,将值放入其中,然后将指向该内存的指针传递到函数中。最后,它必须看起来像:

memScoped{
    val nativeResult = alloc<SecTrustResultTypeVar>()
    nativeResult.value = result
    SecTrustEvaluate(serverTrust!!, nativeResult.ptr)
}
memScoped{
val nativeResult=alloc()
nativeResult.value=结果
SecTrustEvaluate(serverTrust!!,nativeResult.ptr)
}

在这里,我在
memScoped
块中分配了内存,因此当块完成时,它将自动释放。请尝试这种方法,并告诉我是否会出错,好吗?

我在这行“val remoteCertificateData:NSData=SecCertificateCopyData(certificate)as NSData”上也遇到了崩溃。未捕获的Kotlin异常:Kotlin.TypeCastException我不确定即使在Swift中也能进行这种类型的转换。换句话说,您应该通过特殊函数来处理这样的强制转换(CoreFoundation),这里是IIRC。已经讨论过一个类似的问题,它是Kotlin/本地官方问题跟踪者。