オブジェクトを追加および削除したい NSMutableArray プロパティを持つシングルトン クラスがあります。何らかの理由で私は得ています:
-[__NSDictionaryI setObject:forKey:]: unrecognized selector sent to instance 0x1edf24c0
追加しようとすると例外が発生します。シングルトンのインターフェースに関連するコードは次のとおりです。
//outbox item is the type of objects to be held in the dictionary
@interface OutboxItem : NSObject
@property (nonatomic, assign) unsigned long long size;
@end
@interface GlobalData : NSObject
@property (nonatomic, copy) NSMutableDictionary *p_outbox;
+ (GlobalData*)sharedGlobalData;
@end
シングルトンの実装:
@implementation GlobalData
@synthesize p_outbox;
static GlobalData *sharedGlobalData = nil;
+ (GlobalData*)sharedGlobalData {
if (sharedGlobalData == nil) {
sharedGlobalData = [[super allocWithZone:NULL] init];
sharedGlobalData.p_outbox = [[NSMutableDictionary alloc] init];
}
return sharedGlobalData;
}
+ (id)allocWithZone:(NSZone *)zone {
@synchronized(self)
{
if (sharedGlobalData == nil)
{
sharedGlobalData = [super allocWithZone:zone];
return sharedGlobalData;
}
}
return nil;
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}
@end
そして、例外をスローするコードは次のとおりです。
GlobalData* glblData=[GlobalData sharedGlobalData] ;
OutboxItem* oItem = [OutboxItem alloc];
oItem.size = ...;//some number here
[glblData.p_outbox setObject:oItem forKey:...];//some NSString for a key
非常に明白な何かが欠けていますか??