Pour une raison quelconque, je ne peux pas affecter un objet que je récupère d'un tableau mutableImpossible d'attribuer l'objet récupéré à partir NSMutableArray
MISE À JOUR: Notez que j'utilise ARC
Voici le code :
id<Control> control = [formControlUtils getControlWithId:@"123"];
// Here control.controlValue is "Old value"
control.controlValue = @"New value";
// Even after assigning a new value to the property the value is still "Old value"
- (id<Control>)getControlWithId:(NSString *)controlId {
id<Control> control = nil;
for (NSArray *array in [FormRenderManager sharedInstance].formControls)
{
//[FormRenderManager sharedInstance].formControls is a mutable array, so is the nested arrays
control = [[array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"controlId = %@", controlId]] lastObject];
if (control)
break;
}
return control;
}
Comme vous pouvez le voir dans mes commentaires de code ci-dessus, chaque fois qu'un assign une nouvelle valeur à control.controlValue l'ancienne valeur persiste.
Pourquoi est-ce? Est-ce que je manque peut-être quelque chose de fondamental ici ou est-ce dû au fait que je travaille contre un protocole <id>Control control
?
Est-ce que '[FormRenderManager sharedInstance] .formControls' renvoie toujours le même tableau, ou une nouvelle instance auto-libérée pour chaque appel? –
J'ai mis à jour ma question pour indiquer que j'utilise ARC. [FormRenderManager sharedInstance] .formControls retournera toujours le même tableau. – RynoB
merci! Très étrange dans ce cas ... Je vais y réfléchir plus. –