次のコードに問題があります。NSMutableDictionary 内の各配列を変更する必要があります。それらの配列を最初に辞書に追加したときは「MutableArray」ですが、何かをしようとすると「NSArray」になります。
ここに私のコードがあります:
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = selectedCell.textLabel.text;
NSLog(@"cell: %@", cellText);
Boolean flag = false;
NSMutableDictionary *myTempDict = [[NSMutableDictionary alloc] initWithDictionary:self.tableContents copyItems:YES];
for (NSString *key in myTempDict)
{
NSLog(@"1st for");
for(NSString *myString in [myTempDict objectForKey:key])
{
NSLog(@"2nd for");
if([myString isEqualToString:cellText])
{
if([[myTempDict objectForKey:key] isKindOfClass:[NSMutableArray class]])
{
NSLog(@"mutable");
}
else if([[myTempDict objectForKey:key] isKindOfClass:[NSArray class]])
{
NSLog(@"not mutable");
}
[[myTempDict objectForKey:key] removeObject:myString];
break;
NSLog(@"break1");
}
NSLog(@"2nd for end");
}
if(flag)
{
break;
NSLog(@"break2");
}
}
self.tableContents = myTempDict;
[tableView reloadData];
実行すると、次のエラーが生成されます。
- セル: 12-01244476
- 1位
- 2位
- 変更不可
- -[__NSArrayI removeObject:]: 認識されないセレクターがインスタンス 0x7c02580 に送信されました
- 現在の言語: auto; 現在、目的の c
私のviewdidLoadで、これらの配列をNSMutableArrayに作成しましたが、NSArrayに戻ったのはなぜですか? この問題に取り組む方法について何か考えはありますか?
これについて本当に助けが必要です。
ありがとう