2016-10-18 13 views
2

私はこの質問が何度か尋ねられたことは知っていますが、私は本当にそれを理解していません。Swift 3のUnsafePointer

ブルートゥースデバイス(miband)から値を抽出します。 SWIFT 2では、それはこのように働いた:

しかし、迅速な3で、それはエラーをスロー:

Cannot invoke initializer for type 'UnsafePointer<Int>' with an argument list of type '(UnsafeRawPointer)' 

そして、私は迅速3.

答えて

2

にあなたのことを移行する方法について見当がつかないpointeewithUnsafeBytesを使用することができます。

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { 
    if characteristic.uuid.uuidString == "FF06" { 
     let value = characteristic.value!.withUnsafeBytes { (pointer: UnsafePointer<Int>) -> Int in 
      return pointer.pointee 
     } 
     print("Steps: \(value)") 
    } 
} 

私はUnsafePointerPointeeの配列を指していた場合、添え字演算子を使用できます。 pointer.pointeeではなく、pointer[0],pointer[1]などである。

詳細については、SE-0107を参照してください。

+0

完全に動作します。ありがとう。 – Patricks

関連する問題