2011-11-12 2 views
0
NSObject * obj = [[NSObject alloc] init]; 
NSDictionary * dict = [NSDictionary dictionaryWithObject:obj forKey:@"test"]; 

は私に次のクラッシュを与える:NSDictionaryのdictionaryWithObject:キー:実行時に何らかの理由でクラッシュしたアプリ

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable 
object' 

私は私の宿題をやったし、それはそうと、問題が何であるかを特定することはできません有効なコードにする...私はこれ以上私の頭を壊している!

答えて

2

私は問題なくコードを実行しました。辞書を作成した後にクラッシュしていないと確信していますか?例外は、あなたが辞書にオブジェクトを追加しようとしていることを示しているようですが、NSDictionaryは不変であるため実行できません。作成後にオブジェクトを追加/削除する場合は、NSMutableDictionaryを使用する必要があります。

+0

あなたの権利。これは確かに正しいコードです。遅すぎる。しかし、助けてくれてありがとう。あなたが削除のためにそれにフラグを立てても構わないと思います。 :) – Fydo

関連する問題