Я не понимаю, почему я получаю сообщение об ошибке по этому методу:Не удается обновить NSMutableDictionary?
let loginCountKey = "loginCount"
let appReviewParamsKey = "appReviewParams"
func resetLoginCount() {
let defaults = NSUserDefaults.standardUserDefaults()
if let reviewParameters = defaults.valueForKey(appReviewParamsKey) as? NSMutableDictionary {
reviewParameters[loginCountKey] = 1
defaults.setObject(reviewParameters, forKey: appReviewParamsKey)
defaults.synchronize()
}
}
SetObject линия дает мне ошибку: caught "NSInternalInconsistencyException", ... mutating method sent to immutable object"
При отладке, reviewParameters показывает как NSMutableDictionary. Я также попробовал, если var вместо if if let (это не должно быть лишним) и получил ту же ошибку.
Я также попытался установить значение NSNumber (междунар: 1) вместо того, чтобы просто 1.
Почему это вызовет данную ошибку?
Посмотрите на http://stackoverflow.com/questions/5790715/mutating-method-sent-to-immutable-object – ChrisH
@ChrisH Спасибо! –
Не беспокойтесь. Это стало для меня неожиданностью. – ChrisH