【发布时间】:2012-07-31 14:18:35
【问题描述】:
以下代码有问题,我需要对 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 次
- 第二次
- 不可变
- -[__NSArrayI removeObject:]: 无法识别的选择器发送到实例 0x7c02580
- 当前语言:自动;目前objective-c
在我的 viewdidLoad 上,我将那些 Array 创建为 NSMutableArray,但现在它又回到了 NSArray,为什么? 以及如何解决这个问题的任何想法?
真的需要这方面的帮助。
谢谢
【问题讨论】:
-
为什么要复制字典,而不是对原字典进行操作?
标签: objective-c ios nsmutablearray nsarray