Konvertieren Sie eine Objective-C-Methode in Swift für NSInputStream (konvertieren Sie Bytes in Double)
Ich habe den folgenden Code in Objective-C:
- (double)readDouble
{
double value = 0.0;
if ([self read:(uint8_t *)&value maxLength:8] != 8)
{
NSLog(@"***** Couldn't read double");
}
return value;
}
Es klappt. Aber ich weiß nicht, wie ich es in Swift umwandeln soll. Hier ist mein Code:
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 {
}
}
Die Fehlermeldung lautet:
Kann '&' nicht mit einer Argumentliste vom Typ '($ T4, maxLength: IntegerLiteralConvertible)' aufrufen
Kann jemand helfen? Vielen Dan
Die Testdaten, die ich verwende (1.25):
14 AE 47 E1 7A 14 F4 3F
AKTUALISIEREN
Eine einfache c-Lösung, aber wie geht das in Swift?
double d = 0;
unsigned char buf[sizeof d] = {0};
memcpy(&d, buf, sizeof d);