[iOS]swift NSInternalInconsistencyExceptionエラー

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
2015-06-07 15:26 コメント
已邀请:
0

iQi - 面白いアプリを開発中

{ 賛成 }:

結論から言うと、実は、コードの見た目的には問題はなくて、
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];
2015-06-07 15:30 コメント

ログインまたは登録してから回答してください

lujian
lujian

Javaが得意です。

@ステータス

  • 更新: 2015-06-07 15:30
  • 閲覧: 2075
  • フォロー: 2
EXIT フルスクリーンモード 回答