Mam metodę iteracji przez tablicę i wywołuj inną metodę z każdym elementem jako argumentem. Jeśli oświadczam tę metodę jako:Iterowanie nad kolekcją w Swift: var vs. let
func didFinishedListFiles(files: [FileModel]) {
for var fileData in files {
self.downloadSingleFile(NSUUID(UUIDString: fileData.uuid!)!);
}
}
Xcode pokazuje ostrzeżenie:
Variable 'fileData' was never mutated; consider changing to 'let' constant
Ale jeśli zmienię var
do let
:
func didFinishedListFiles(files: [FileModel]) {
for let fileData in files {
self.downloadSingleFile(NSUUID(UUIDString: fileData.uuid!)!);
}
}
Xcode pokazuje błąd:
'let' pattern cannot appear nested in an already immutable context
Jak jest prawidłowy sposób wdrożenia go bez ostrzeżeń/błędów?
nieprawdaż t to po prostu 'dla fileData w plikach {...'. Bez var lub niech potrzebne. – Fogmeister
Dzięki, masz rację ... ehhh –
Nie ma za co. Myślę, że niejawnie sprawia, że jest to "let" i jeśli chcesz zmutować obiekt w kolekcji, musisz jawnie ustawić go jako 'var' – Fogmeister