J'ai une classe avec laquelle j'encapsule ABRecordID et lorsqu'elle est utilisée comme clé pour ajouter à un NSMutableDictionary, j'obtiens l'exception d'exécution :
"NSInvalidArgumentException : *** -[MyRecordId copyWithZone :]: unrecognized selector sent to instance"
MyRecordId déclaré comme :
@interface MyRecordId : NSObject {
ABRecordID abRecordId;
}
-(id)initWithId:(ABRecordID)anABRecordId;
@property (nonatomic) ABRecordID abRecordId;
@end
Ajouté au dictionnaire :
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
MyRecordId *recordId = [[MyRecordId alloc] initWithId:anABRecordId];
[dict setObject:@"hello" forKey:recordId];
La dernière ligne provoque l'exception.. Je sais que l'on ne peut pas stocker des types de non-objets en tant que clés d'un dictionnaire, mais j'ai pensé qu'en l'enveloppant dans une classe dérivée de NSObject, tout irait bien.
Ne suis-je pas censé stocker ABRecordID dans d'autres objets ? Devrais-je faire autre chose ?