Je viens de remarquer qu'appeler addObject:
sur un NSMutableArray ne permet pas d'accéder au setter de ce tableau.
Par exemple, pour NSMutableArray self.myArray
, [self.myArray addObject:object]
n'utilise pas [self setMyArray:array]
pour ajouter l'objet.
Auparavant, j'utilisais des setters et getter personnalisés pour vérifier l'affectation avant de l'effectuer ; par exemple, si je voulais un tableau qui n'accepte que les objets de la classe MyClass
je ferais ce qui suit :
- (void)setMyArray:(NSMutableArray *)myArray
{
for (id object in myArray)
{
if (![object isKindOfClass:[MyClass class]]) return;
}
_myArray = myArray;
}
- (NSMutableArray *)myArray
{
if (!_myArray) _myArray = [[NSMutableArray alloc] init];
_myArray = myArray;
}
Comment puis-je réaliser cette même fonctionnalité en changeant le tableau via addObject:
, removeObject:
et d'autres fonctions similaires qui peuvent contourner le setter ?