Objective c NSTableView附件中的内部一致性异常错误?

Objective c NSTableView附件中的内部一致性异常错误?,objective-c,xcode4.5,uitableview,Objective C,Xcode4.5,Uitableview,我正在尝试将附件(已选中/未选中)添加到此tableview,出于某种原因,xCode告诉我此行有问题:[item setObject:cell forKey:@“StrainTableCell”] 控制台向我抛出此错误: *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[\uu NSCFDictionary setObject:forKey:::正在将方法发送到不可变对象”* 有人知道为什么吗?请参阅下面的代码片段 ViewCon

我正在尝试将附件(已选中/未选中)添加到此tableview,出于某种原因,xCode告诉我此行有问题:[item setObject:cell forKey:@“StrainTableCell”]

控制台向我抛出此错误:

*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[\uu NSCFDictionary setObject:forKey:::正在将方法发送到不可变对象”*

有人知道为什么吗?请参阅下面的代码片段

ViewController.h

#import <UIKit/UIKit.h>
#import "PickerViewController.h"


@interface PickerResultsTableViewController : UITableViewController  {

    NSIndexPath *currentDetailPath;
    bool loaded;


    NSArray *Strains;
    NSArray *searchResults;
    NSMutableArray *dataArray;
    NSMutableData *data;

}

- (IBAction)backbuttonpressed: (UIBarButtonItem *)sender;

@property (strong, nonatomic) NSArray *favoritesArrayset;
@property (strong, nonatomic) IBOutlet UITableView *PickerTableView;
@property (nonatomic, retain) NSArray *searchResults;
@property (nonatomic, strong) NSMutableSet * favoritesArray;

@end

好的,编译器给了您一个关于发生了什么的非常好的提示:
发送到不可变对象的变异方法
。 即使您将项声明为
NSMutableDictionary
,但这并不意味着您从
[Strains objectAtIndex:indexath.row]
获取的对象实际上是一个可变字典

即使你这样做:

NSDictionary *dict1 = [[NSDictionary alloc] init];

//the following line does not convert dict1 into a mutable dictionary
NSMutableDictionary *dict2 = (NSMutableDictionary*)dict1;
要解决此问题,请确保添加到
trains
的对象是可变字典。可以通过直接实例化一个或调用
mutableCopy
方法来实现


希望这有帮助

首先,为什么要在字典中添加单元格?由于细胞被回收,我认为这可能不是个好主意。嗯,这太奇怪了。我在另一组视图控制器上使用了相同的代码,它工作得很好。。。?我想知道我是否错过了其他风投的一些东西。。。
NSDictionary *dict1 = [[NSDictionary alloc] init];

//the following line does not convert dict1 into a mutable dictionary
NSMutableDictionary *dict2 = (NSMutableDictionary*)dict1;