NSMutableDictionary メンバー変数を持つ単純なクラスがあります。ただし、setObject:forKey を呼び出すと、エラーが発生します (「変更メソッドが不変オブジェクトに送信されました」)。問題の原因はデバッガーから明らかです。私の 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 として扱われるようにするには、何が欠けていますか? ありがとう!