#ios #swift #swift3 #nsdata
#iOS #swift #swift3 #nsdata
Вопрос:
Как перенести этот код в Swift 3?
let keyBytes = keyData.bytes.bindMemory(to: Void.self, capacity: keyData.count)
Я получаю сообщение об ошибке ниже
‘bytes’ недоступен: вместо этого используйте withUnsafeBytes
Комментарии:
1. Для чего вам нужен указатель? Было бы полезно немного больше контекста.
Ответ №1:
keyData
это тип Data
объекта, который не имеет свойства bytes
, преобразуйте keyData
в NSData
, а затем получите доступ bytes
.
let keyBytes = NSData(data: keyData).bytes.bindMemory(to: Void.self, capacity: keyData.count)
Комментарии:
1. Боже, большое тебе спасибо. Может быть, вы знаете, как это исправить:
let cipherText = UnsafeMutablePointer<UInt8>(cipherData.mutableBytes)
. Ошибка не удается вызвать инициализатор для типа unsafemutablepointer<Int8> со списком аргументов типа (UnsafeMutableRawPointer)2. @Илья Добро пожаловать, приятель, ошибка говорит о том, что нет метода инициализации
UnsafeMutablePointer
, который принимаетUnsafeMutableRawPointer
в качестве аргумента. Возможно, вам нужно задать еще один вопрос по SO. Не знаю, как это решить.