Xcode возвращает ноль в строке, которая не является необязательной - PullRequest
0 голосов
/ 28 мая 2020

У меня есть функция, которая принимает изображение и строку. Когда я пытаюсь поместить строку в более длинную строку с помощью способности (), он сообщает мне, что находит nil при разворачивании необязательного. Исключение, это вовсе не обязательно, это строка. Я могу распечатать значение, и оно получится правильно.

func UpdateBusiness(logo: UIImage, category: String) {
        guard let bizID = UserDefaults.standard.string(forKey: defaultKeys.businessID) else {return}
        let thisURL = "http://mywebsite.com/api/v0.1/Business/EditBusinessLogoAndCategory?businessID=\(bizID)&category=\(category)"
        let combinedURL = URL(string: thisURL)!
}

создание URL приводит к сбою системы. Я вижу значение категории в отладчике, и у меня нет дополнительных опций в этой строке. Как он может найти ноль?

1 Ответ

5 голосов
/ 28 мая 2020

Этот код дает сбой из-за принудительного развертывания. В этом случае можно порекомендовать использовать URLComponents . Это более читабельно, чем объединение строк, и для большого количества параметров объединение строк не является хорошим вариантом.

var components = URLComponents()
components.scheme = "http"
components.host = "mywebsite.com"
components.path = "/api/v0.1/Business/EditBusinessLogoAndCategory"
components.queryItems = [
    URLQueryItem(name: "businessID", value: bizID),
    URLQueryItem(name: "category", value: category)

]
let url = components.url



enter code here
...