objectif-c: Comment mettre à jour l'objet dans NSMutableArray?
Je suis en train de mettre à jour un objet dans NSMutableArray
Product *message = (Product*)[notification object];
Product *prod = nil;
for(int i = 0; i < ProductList.count; i++)
{
prod = [ProductList objectAtIndex:i];
if([message.ProductNumber isEqualToString:prod.ProductNumber])
{
prod.Status = @"NotAvaiable";
prod.Quantity = 0;
[ProductList removeObjectAtIndex:i];
[ProductList insertObject:prod atIndex:i];
break;
}
}
Je veux savoir que si il y a une meilleure façon de faire cela?
source d'informationauteur Azhar
Vous devez vous connecter pour publier un commentaire.
Supprimer des lignes
et ce sera ok!
Pour la mise à jour, utilisez
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject
Mais il n'est pas nécessaire dans ce cas, puisque vous êtes en train de modifier le même objet.
Vous pourriez commencer par l'aide de rapide énumérationqui est plus rapide et plus facile à lire. Aussi, vous n'avez pas besoin de retirer et insérer l'objet, vous pouvez le modifier en ligne. Comme ceci:
(Est
ProductList
un objet? Si elle l'est, elle doit commencer par une lettre minuscule:productList
. Noms en majuscule sont pour les classes. Aussi,Status
etQuantity
sont des propriétés et devrait aussi commencer par une lettre minuscule. Je vous suggère fortement de suivre les Cacao conventions de nommage.)Il y a deux approches
Mise à jour de l'objet existant:
Utilisation
-insertObject:atIndex:
oureplaceObjectAtIndex:withObject:
.