Преобразовать метод Objective C в Swift для NSInputStream (преобразовать байты в двойной)
У меня есть следующий код в Objective-C:
- (double)readDouble
{
double value = 0.0;
if ([self read:(uint8_t *)&value maxLength:8] != 8)
{
NSLog(@"***** Couldn't read double");
}
return value;
}
Оно работает. Но я не знаю, как преобразовать его в Swift. Вот мой код:
public func readDouble() -> Double {
var value : Double = 0.0
var num = self.read((uint8_t *)&value, maxLength:8) // got compiling error here!
if num != 8 {
}
}
Сообщение об ошибке:
Невозможно вызвать '&' со списком аргументов типа '($ T4, maxLength: IntegerLiteralConvertible)'
Кто-нибудь может помочь? Спасибо
Данные тестирования, которые я использую (1.25):
14 AE 47 E1 7A 14 F4 3F
ОБНОВИТЬ:
Простое решение c, но как это сделать в Swift?
double d = 0;
unsigned char buf[sizeof d] = {0};
memcpy(&d, buf, sizeof d);