2016-11-08 2 views
1

Im 'swift에서 아주 새로운 기능이고 swift3 및 xcode8.1을 사용해야합니다. 다른 솔루션을 시도했지만 주목할만한 기능이 있습니다. 다른 주제에서 볼 수있는 swift2 전환의 swift3 때문인 것 같습니다. 그럼에도 불구하고 그것은 저에게 많은 도움이되지 않았습니다. 여기 "int1"은 'Bool'로 변환 할 수 없습니다. swift3

내 기능입니다 :

func startHeartRateUpdates() { 
    output("Starting Heart Rate updates...") 
    if let client = self.client { 
     do { 
      try client.sensorManager.startHeartRateUpdates(to: nil, withHandler: { (heartRateData: MSBSensorHeartRateData!, error: NSError!) in 
       self.hrLabel.text = NSString(format: "Heart Rate: %3u %@", 
        heartRateData.heartRate, 
        heartRateData.quality == MSBSensorHeartRateQuality.acquiring ? "Acquiring" : "Locked") as String 
      }) 
      self.perform(#selector(ViewController.stopHeartRateUpdates), with: nil, afterDelay: 60) 
     } catch let error as NSError { 
      output("startHeartRateUpdatesToQueue failed: \(error.description)") 
     } 
    } else { 
     output("Client not connected, can not start heart rate updates") 
    } 
} 

그리고 내가 가진 유일한 오류이 2 개 빨간색 undernlined 라인입니다 :

'Int1' is not convertible to 'Bool'

감사에 대한 : 메시지와 함께

heartRateData.quality == MSBSensorHeartRateQuality.acquiring ? "Acquiring" : "Locked") as String 

당신의 도움.

+0

당신이'MSBSensorHeartRateQuality'에 대한 속성 VAR를 게재 할 수 있습니까? 'Int1'은 Swift의 한 형식이 아닙니다. 나는 당신이 단순히 당신의 선언에 오타가 있다고 의심합니다. –

+0

여기에 대한 속성이 없습니다. 또는 귀하의 질문을 이해할 수 없네요 .. 죄송합니다 영어 네이티브 아니 – Arnaud

답변

1

필드 acquiringint 유형입니다. condic 문으로 int 유형을 사용하는 경우 ==을 사용해야합니다.

예 :

heartRateData.quality = MSBSensorHeartRateQuality.acquiring == 1 ? "Acquiring" : "Locked") as String 
+0

그는 대답 주셔서 감사합니다. 그러나 I'v이 다른 오류가 난이하려고하면 " '='형식의 피연산자에 적용 할 수 없습니다 이진 연산자 'BOOL'과 '인접 운영자가 비 연관 우선 순위 그룹의 비교 우선 순위'에있다" ' Int " 비록 그것을 확인하려고합니다 – Arnaud

+0

제 대답을 사용하십시오. 나는 그것을 편집했다. – Satheshkumar

+0

나는 그것을 시험해 보았다. 그런 다음 오류가 있습니다. "속성에 할당 할 수 없습니다. '품질'은 get 전용 속성입니다. – Arnaud