kotlin.UInt нельзя привести к kotlinx.cinterop.CValuesRef - PullRequest
0 голосов
/ 08 ноября 2019

Uncaught Kotlin исключение: kotlin.ClassCastException: kotlin.UInt не может быть приведено к kotlinx.cinterop.CValuesRef

Использование приведенного ниже кода в мультиплатформе Kotlin для закрепления SSL для iOS.

SecTrustEvaluate (serverTrust!!, результат как CValuesRef)

1 Ответ

1 голос
/ 08 ноября 2019

Нельзя привести значение к типу указателя. Вы должны выделить собственную память, поместить в нее значение и затем передать указатель на эту память в функцию. В конце концов, это должно выглядеть примерно так:

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

Здесь я выделил память в блоке memScoped, поэтому он будет автоматически освобожден после его завершения. Пожалуйста, попробуйте этот подход и скажите, если что-то пойдет не так, хорошо?

...