Невозможно присвоить значение: downloadURL является константой let - PullRequest
0 голосов
/ 06 мая 2019

У меня проблемы с downloadURL = metadata.downloadURL. let должен быть впереди, чтобы это работало? Когда я делаю это говорит

определение конфликтует с предыдущим значением и значением типа «StorageMetaData», не имеет члена «downloadURL»

Буду очень признателен за любую помощь, так как пока ничего не нашел.

// You can also access to download URL after upload.
storageRef.downloadURL { (url, error) in
    guard let downloadURL = url else {
        // Uh-oh, an error occurred!
        return
    }

    // Metadata contains file metadata such as size, content type, and download URL
    downloadURL = metadata.downloadURL

1 Ответ

0 голосов
/ 06 мая 2019

Компилятор скажет вам, что не так.Вы используете guard let для создания константы let downloadURL.Если эта константа имеет значение, ее нельзя изменить.Затем вы пытаетесь изменить его значение.Это не разрешено

Ваш код вводит в заблуждение, потому что вы сначала присваиваете downloadURL с защитным пропуском, а затем пытаетесь присвоить downloadURL совершенно другое значение.(Во втором случае вы используете metadata.downloadURL.

Зачем присваивать значение downloadURL, а затем сразу же забыть это значение и заменить его другим значением?

Вместо этого вы можетенапишите код так:

storageRef.downloadURL { (url, error) in
    //Use the name `inputURL` to indicate this is the URL passed to the closure
    guard let inputURL = url else {
        // Uh-oh, an error occurred!
        return
    }

    // Metadata contains file metadata such as size, content type, and download URL
    let downloadURL = metadata.downloadURL
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...