[英]NSMutable Array error with NSUserDefaults
我有此錯誤,但我不明白為什么會發生。 僅當我在iPad上運行應用程序時,才會發生錯誤,在模擬器中可以正常運行。
我從開始
if NSUserDefaults.standardUserDefaults().objectForKey("WeatherData") != nil {
WeatherData = NSUserDefaults.standardUserDefaults().objectForKey("WeatherData") as NSMutableArray
DisplayInfo(WeatherData[0] as String, Temperature: WeatherData[1] as Int, Code: WeatherData[2] as String, Condition: WeatherData[3] as String)
}
然后最后,我替換WeatherData數組並重新保存它。
WeatherData.replaceObjectsInRange(NSRange(0 ... 3), withObjectsFromArray: [placemark.locality, Temperature, Code, Condition])
}
NSUserDefaults.standardUserDefaults().setObject(WeatherData, forKey: "WeatherData")
我得到的錯誤是:
'-[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object'
我知道我的數組是NSMutable,但是NSUserDefaults只接受不可變的。 我想做的但是沒用的:
WeatherData.replaceObjectsInRange(NSRange(0 ... 3), withObjectsFromArray: [placemark.locality, Temperature, Code, Condition]) as NSArray
因為我最初將WeatherData Array定義為NSMutable。 我需要創建一個新的數組作為占位符嗎?
預先感謝,王牌
NSUserDefaults
始終返回不可變的對象。 像這樣
WeatherData = NSMutableArray(array: NSUserDefaults.standardUserDefaults().objectForKey("WeatherData"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.