У меня есть метод, который выполняет итерацию по массиву и вызывает другой метод с каждым элементом в качестве аргумента. Если я объявляю этот метод:Итерация по коллекции в Swift: var vs. let
func didFinishedListFiles(files: [FileModel]) {
for var fileData in files {
self.downloadSingleFile(NSUUID(UUIDString: fileData.uuid!)!);
}
}
Xcode показывает предупреждение:
Variable 'fileData' was never mutated; consider changing to 'let' constant
Но если я изменю var
к let
:
func didFinishedListFiles(files: [FileModel]) {
for let fileData in files {
self.downloadSingleFile(NSUUID(UUIDString: fileData.uuid!)!);
}
}
Xcode показывает ошибку:
'let' pattern cannot appear nested in an already immutable context
Как правильно реализовать его без каких-либо предупреждений/ошибок?
Isn» t это просто 'для fileData в файлах {...'. Нет var или let need. – Fogmeister
Спасибо, ты прав ... ehhh –
Добро пожаловать. Я думаю, что это неявно делает его «let», и если вы хотите мутировать объект в коллекции, тогда вы должны явно указать его как «var» – Fogmeister