>我有一个获取图像和字符串的函数。当我尝试使用 (( 功能将字符串放入较长的字符串中时,它告诉我它在解开可选包时找到 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 会使系统崩溃。我可以在调试器中看到类别的值,并且此字符串中没有可选项。它怎么能找到零?
由于强制解包,此代码崩溃。在这种情况下,可以建议使用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