2016-11-08 4 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") 
    } 
} 

そして、私が持っていた唯一のエラーは赤でundernlinedこの2行です:メッセージ付き

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

:用

'Int1' is not convertible to 'Bool'

感謝あなたの助け。

+0

あなたは 'MSBSensorHeartRateQuality'のプロパティVARを表示することができますか? Int1はSwiftの型ではありません。私はあなたの宣言に単にタイプミスがあると思われます。 –

+0

私はこのためのプロパティvarを持っていません。 または私はあなたの質問を理解することができません。申し訳ありませんが、英語ネイティブ – Arnaud

答えて

1

フィールドacquiringintタイプと思います。コンディショナルステートメントにintタイプを使用する場合は、==を使用してください。

例:

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

あなたの答えに感謝します。 私はこれを試したときに2つの他のエラーが発生しました: "隣接演算子は非連想先行グループ '比較優先順位" " "バイナリ演算子' = 'は' Bool '型と' Int " 私はそれをチェックしようとします – Arnaud

+0

私の答えを使用してください。私はそれを編集しました。 – Satheshkumar

+0

私はそれを試しました。次に、私はエラーが発生しました: "プロパティに割り当てることはできません: '品質'はget-onlyプロパティです。 – Arnaud

関連する問題