Selector no reconocido al agregar un objeto a NSMutableArray

Tengo una clase singleton con una propiedad NSMutableArray a la que quiero agregar objetos y eliminar objetos. Por alguna razón estoy recibiendo:

-[__NSDictionaryI setObject:forKey:]: unrecognized selector sent to instance 0x1edf24c0

excepción cuando se trata de agregar a ella. Aquí está el código relevante para la interfaz del singleton:

//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

La implementación del singleton:

@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

Y aquí está el código que lanza la excepción:

GlobalData* glblData=[GlobalData sharedGlobalData] ;
OutboxItem* oItem = [OutboxItem alloc];
oItem.size = ...;//some number here
[glblData.p_outbox setObject:oItem forKey:...];//some NSString for a key

¿Me estoy perdiendo algo muy obvio?

Respuestas a la pregunta(2)

Su respuesta a la pregunta