因此,如果您查看下面的代码,您将看到以下行失败:
cannot use mutating member on immutable value: 'forecasts' is a 'let' constant
引起的forecasts.append(forecast)
。我有一个您在下面看到的服务文件,ForecastService
我正在使用该函数从 API 异步获取视图控制器中的 JSON。我正在尝试将一个对象和一个对象数组传递给我想要对其进行变异的函数,以便我可以使用视图控制器中的更新值来更新我的 UI。我想构造预测对象并将它们推送到我在视图控制器中初始化的数组中。
任何关于我如何解决这个问题的说明都会很棒。
import Foundation
import Alamofire
class ForecastService {
static let sharedInstance = ForecastService()
private init() {}
func downloadForecastDetails(forecast: Forecast, forecasts: [Forecast], completed: @escaping DownloadComplete) {
let url = URL(string: FORECAST_URL)!
Alamofire.request(url).responseJSON { response in
let result = response.result.value
if let dict = result as? Dictionary<String, AnyObject> {
if let list = dict["list"] as? [Dictionary<String, AnyObject>] {
for obj in list {
let forecast = Forecast(weather: obj)
forecasts.append(forecast)
}
}
}
completed()
}
}
}