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);