我一直在將Objective-C代碼片段轉換爲使用NSData
和CoreBluetooth
的Swift問題。我曾看過this question和其他一些人在Swift中處理NSData
,但沒有取得任何成功。將NSData Objective-C代碼轉換爲Swift時遇到困難
的Objective-C段:
- (CGFloat) minTemperature
{
CGFloat result = NAN;
int16_t value = 0;
// characteristic is a CBCharacteristic
if (characteristic) {
[[characteristic value] getBytes:&value length:sizeof (value)];
result = (CGFloat)value/10.0f;
}
return result;
}
我至今在斯威夫特(不工作):
func minTemperature() -> CGFloat {
let bytes = [UInt8](characteristic?.value)
let pointer = UnsafePointer<UInt8>(bytes)
let fPointer = pointer.withMemoryRebound(to: Int16.self, capacity: 2) { return $0 }
value = Int16(fPointer.pointee)
result = CGFloat(value/10) // not correct value
return result
}
是否邏輯看錯在這裏?謝謝!
鑄造價值喜好,使該錯誤「無法調用初始化類型‘CGFloat的’與類型'(_)'的參數列表「 – Surz
檢查我更新的答案。 – the4kman