Я не могу найти никаких примеров того, как получить CPointer в Kotlin Multiplatform, и существующая документация не очень помогает. В моем исходном наборе iOS мне нужно создать Kotlin-эквивалент следующего кода Swift (включая только соответствующие части кода):
...(hex: String) {
if hex.hasPrefix("#") {
let start = hex.index(hex.startIndex, offsetBy: 1)
let scanner = Scanner(string: hexColor)
var hexNumber: UInt64 = 0
if scanner.scanHexInt64(&hexNumber) {
r = CGFloat((hexNumber & 0xff000000) >> 24) / 255
....
Конкретная часть, с которой у меня проблемы, это
scanner.scanHexInt64 (& hexNumber)
Это код Kotlin и вопрос
//input to function - hex: String
val scanner = NSScanner(hex)
if (hex.startsWith("#")) {
scanner.scanLocation = 1u
}
var hexNumber : UInt32 = 0u
/*Type mismatch.
Required:
CPointer<UIntVar /* = UIntVarOf<UInt> */>?
Found:
UInt32 /* = UInt */
*/
//HOW TO GET CPOINTER TO hexNumber?
scanner.scanHexInt(hexNumber)
Согласно документации: (ссылка)
Указатели и массивы отображаются в
CPointer<T>?.
Но как?