web-dev-qa-db-ja.com

「変数「xxx」は変更されませんでした。「let」定数に変更することを検討してください」エラー

次の問題があります。以下のコードを使用すると、問題が発生します

「変数「特性」は変更されませんでした。「定数」に変更することを検討してください」

for var characteristic:CBCharacteristic in service.characteristics ?? [] {
    print(str)
    _selectedPeripheral!.writeValue(str.dataUsingEncoding(NSUTF8StringEncoding)!, forCharacteristic: characteristic, type: CBCharacteristicWriteType.WithoutResponse)
}

「let」に変更すると、エラーが発生します。

'let'パターンは、すでに不変のコンテキストでネストされているようには見えません

なぜ変更を推奨し、後でエラーとしてマークするのですか?

34
Luke Pistrol

varを削除して、コードを作成するだけです。

for characteristic in service.characteristics ?? [] {
    print(str)
    _selectedPeripheral!.writeValue(str.dataUsingEncoding(NSUTF8StringEncoding)!, forCharacteristic: characteristic, type: CBCharacteristicWriteType.WithoutResponse)
}

characteristicはデフォルトで不変であるためです。

64
ABakerSmith