2017-01-09 8 views
0

저는 현재 swift 2.3에서 myfit 프로젝트를 swift 3으로 마이그레이션 중이며 한 가지를 혼동합니다. SWIFT 2.3에 나는 단순히Corebluetooth가 특성 값을 읽음으로 변경됩니다.

print("value \(characteristic.value!)") 

를 사용할 수 있으며 내가 값 (61)을받은 값을 출력 것이다 그러나 3 신속한에서 1 바이트 같은 것을 인쇄 할 것입니다. 값을 얻으려면 명령으로 시도했습니다.

print("value \(characteristic.properties.rawvalue)") 

이 명령을 사용하면 값을 반환합니다. 하지만 애플은 왜 이것을 바꿀까?

편집

내가 그것을 버그가 궁금해? 나는 Xcode8.2.1을 사용하고 있고 명령 3을 스위프트하고있다.

characteristic.value! 

는 나에게 그 값을 돌려주지 않을 것이다.

답변

1

characteristic.valueData 유형 값을 반환하십시오. 데이터를 얻는 방법은 다음과 같습니다.

 if let dataBytes = characteristic.value { 
      if characteristic.uuid == CBUUID(string: "FFF1") { 
       print(dataBytes) 
      } else if characteristic.uuid == CBUUID(string: "FFF2") { 
       print(dataBytes) 
      } 
     } 
+0

안녕하세요, yah 데이터 형식이지만 값을 인쇄 할 때 "1 바이트"표시되지만 그 wan't 않습니다. –

+0

필요한 값으로 변환 할 수 있습니다. 즉, 반환 값이 문자열 유형이면'let value = String (bytes : dataBytes, encoding : .utf8)'을 사용할 수 있습니다. – WeiJay

+0

감사합니다. 도움이 되겠지만 인코딩하기 전에 원시 값이 필요한 경우 어떻게해야합니까? –