2015-06-19 19 views
33

Ho il seguente problema. Io uso questo codice qui sotto e ottengo la questione"La variabile 'xxx' non è mai stata modificata, si consideri la modifica in 'let' costante" ERRORE

"Variable 'characteristic' was never mutated; consider changing to 'let' constant"

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

Quando cambio di "lasciare", c'è un errore:

'let' pattern cannot appear nested in an already immutable context

Perché si consiglia me il cambiamento e poi segnarlo come un errore?

risposta

63

Hai solo bisogno di rimuovere var, rendendo il vostro codice:

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

perché characteristic è immutabile per impostazione predefinita.

+0

Thx Ci proverò :) –

+0

Grazie per il tuo supporto. –

Problemi correlati