У меня есть несколько вопросов, обновляющих до версии 3.0. У меня есть следующий код:Кастинг UnsafeMutablePointers для UnsafeMutableRawPointers
// Retrieve the Device GUID
let device = UIDevice.current
let uuid = device.identifierForVendor
let mutableData = NSMutableData(length: 16)
(uuid! as NSUUID).getBytes(UnsafeMutablePointer(mutableData!.mutableBytes))
// Verify the hash
var hash = Array<UInt8>(repeating: 0, count: 20)
var ctx = SHA_CTX()
SHA1_Init(&ctx)
SHA1_Update(&ctx, mutableData!.bytes, mutableData!.length)
SHA1_Update(&ctx, (opaqueData1! as NSData).bytes, opaqueData1!.count)
SHA1_Update(&ctx, (bundleIdData1! as NSData).bytes, bundleIdData1!.count)
SHA1_Final(&hash, &ctx)
let computedHashData1 = Data(bytes: UnsafePointer(&hash), count: 20)
Мой первый вопрос с строки кода:
(uuid! as NSUUID).getBytes(UnsafeMutablePointer(mutableData!.mutableBytes))
mutableData .mutableBytes теперь возвращает UnsafeMutableRawPointer и компилятор жалуется, что «не может ссылаться на инициализатор для типа ' UnsafeMutablePointer < _> с аргументом типа '(UnsafeMutableRawPointer)' 'Теперь я пытаюсь применить их к тем же типам, но не имел успеха.
Мой второй вопрос с линией:
let computedHashData1 = Data(bytes: UnsafePointer(&hash), count: 20)
Эта строка вызывает ошибку компилятора «неоднозначные использование" инициализации»