我有一个带有 NSMutableDictionary 成员变量的简单类。但是,当我调用 setObject:forKey 时,我得到一个错误('mutating method sent to immutable object')。从调试器可以看出问题的根源——我的 NSMutableDictionary 实际上是 NSDictionary 类型。
我一定错过了一些非常简单但似乎无法修复的东西。以下是相关代码:
// Model.h
@interface Model : NSObject {
NSMutableDictionary *piers;
}
@property (nonatomic,retain) NSMutableDictionary *piers;
@end
// Model.m
@implementation Model
@synthesize piers;
-(id) init {
if (self = [super init]) {
self.piers = [[NSMutableDictionary alloc] initWithCapacity:2];
[self createModel];
}
return self;
}
-(void) createModel {
[piers setObject:@"happy" forKey:@"foobar"];
}
@end
如果我在代码中的任何位置放置断点并调查 self.piers,它的类型为 NSDictionary。我错过了什么,所以它被视为 NSMutableDictionary ?谢谢!