私はObjective-Cの領域に飛び込みはじめ、ゆっくりとすべてを取得しています。私は、NSMutableArrayであったファイルをアーカイブ解除し、その配列で私のモデルを初期化しています。配列は、さまざまなNSMutableDicationaryでいっぱいです。私が見たことから、これらの辞書は変更不可能なものとして追加されるので、私は先に進み、レギュラーをコピーして変更可能なものに入れ、古いものを削除します。このソリューションは、最初のインスタンスを除くすべてのインスタンスで動作するようです。NCSFDictionary、不変オブジェクトに送信された突然変異メソッド
私はなぜそれが最初のもの以外のすべてのためにうまくいくのかについて迷っています。ここで
は、私はここですべての
-(id) initWithList:(NSMutableArray *)savedList
{
self = [super init];
if (self)
{
int size=0;
serverList=[[NSMutableArray alloc] initWithArray:savedList copyItems:YES];
size=[serverList count];
for(int i=0;i<size;i++)
{
loginList=[NSMutableDictionary dictionaryWithDictionary:[serverList objectAtIndex:i]];
[serverList addObject:loginList];
[serverList removeObjectAtIndex:i];
}
}
return self;
}
を初期化していますどのようにエラーを投げているコードで、値がテーブルビューのチェックボックスをオフに読んで値を変更するためにここに渡されています。ここで
-(void)setMount:(int)row value:(NSNumber*)boolAsNumber
{
[[serverList objectAtIndex:row] setObject:boolAsNumber forKey:@"mountshare"];
}
は、私が試してみて、最初の要素にあなたの助けを
2010-12-01 13:38:54.445 Network Share[35992:a0f] *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
感謝を変更したときに、それが示すことエラーです。より良い方法があれば教えてください。
うわー、ありがとう!それは今、魅力のように動作します。 – utahwithak
ありがとうございます...あまりにも解決されたmaの問題.. :) – Rajneesh071
と私も答えて..あなたの答えを使用して.. :) http:// stackoverflow。com/questions/6100271/nsinternalinconsistencyexception-with-nsuserdefaults-use-method-setvalue/13952939#13952939 – Rajneesh071