* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
0
iQi - 面白いアプリを開発中
結論から言うと、実は、コードの見た目的には問題はなくて、
NSUserDefaultsにmutableなオブジェクトを保存しても、取り出すとimmutableなオブジェクトが返る
というのがポイントでした。
なので、mutableなオブジェクトが必要な場合はmutableCopyを使って作り直す必要があるようです。
Objective-C:
NSUserDefaultsにmutableなオブジェクトを保存しても、取り出すとimmutableなオブジェクトが返る
というのがポイントでした。
なので、mutableなオブジェクトが必要な場合はmutableCopyを使って作り直す必要があるようです。
var obj: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("key")
var dic: NSMutableDictionary = obj.mutableCopy() as NSMutableDictionary
Objective-C:
NSMutableArray *mutableArray = [[[NSUserDefaults standardUserDefaults] objectForKey:@"hoge"] mutableCopy];
[mutableArray insertObject:testObject atIndex:0];