J'ai rencontré des problèmes lors de la conversion d'un extrait Objective-C en Swift qui utilise NSData
et CoreBluetooth
. J'ai regardé this question et un couple d'autres traitant NSData
dans Swift mais n'ai pas eu de succès.Problème lors de la conversion du code objectif-C NSData en Swift
Objective-C Snippet:
- (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;
}
Ce que j'ai jusqu'à présent à Swift (ne fonctionne pas):
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
}
Est-ce que la logique regard ne va pas ici? Merci!
aime valeur Casting qui donne l'erreur « ne peut pas invoquer initialiseur pour le type « CGFloat » avec un Liste des arguments de type '(_)' " – Surz
Vérifiez ma réponse mise à jour. – the4kman