Я разветвил этот проект, поэтому я не так хорошо знаком со всеми деталями: https://github.com/nebs/hello-bluetooth/blob/master/HelloBluetooth/NSData%2BInt8.swift.Невозможно передать неизменяемое значение как аргумент inout: вызов функции возвращает неизменяемое значение
Все это часть расширения NSData, которое я использую для отправки 8-битных значений в Arduino.
func int8Value() -> Int8 {
var value: Int8 = 0
copyBytes(to: &UInt8(value), count: MemoryLayout<Int8>.size) //BUG
return value
}
Однако, по-видимому, в Swift 3, что это сейчас выдает ошибку в разделе copyBytes. Хотя я видел некоторые решения, такие как передача адреса в параметре, я не хотел рисковать сломать оставшиеся части кода. Любые предложения о том, что делать для этого?
Удивительное объяснение! Спасибо огромное! –
Вы хотели использовать инициализатор 'init (bitPattern:)' Int8 'для первого и последнего примеров, не так ли? – Hamish
Я этого не делал, но ты прав. То, как я его написал, рухнет. Благодарю. –