I do not understand why I'm getting an error on this method:
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()
}
}
the setObject line give me an error: caught "NSInternalInconsistencyException", ... mutating method sent to immutable object"
When debugging, reviewParameters shows as an NSMutableDictionary. I also tried an if var instead of an if let (tho it should be unnecessary) and got the same error.
I also tried setting the value to NSNumber(int: 1) instead of just 1.
Why would this cause the given error?