2010-08-21 5 views
0

dans ma question précédente, on m'a donné du code afin de composer cette déclaration.A défaut de supprimer des éléments du tableau mutable

favoriteArray est un tableau Mutable ...

if (![self.favoritesArray containsObject:@"added"]) 
    { 
     [self.favoritesArray addObject:@"added"]; 
    } 

else 
{ 
    [self.favoritesArray removeObject:@"added"]; 
} 
//NSUInteger newRow = [self.favoritesArray count]; 

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
[userDefaults setObject:self.favoritesArray forKey:@"MyFavorites"]; 

mais je ne peux pas @"added" à enlever ... lorsque les charges d'applications il charge automatiquement ajouté dans les favoris le texte ajouté, même après le nettoyage le code. quand j'appuie sur le bouton il ne l'enlève pas. donc im devinant il y a quelque chose de mal

et voici où je le charge ...

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    NSMutableArray *didContain = [[NSMutableArray alloc] init]; 
    didContain = [[userDefaults objectForKey:@"MyFavorites"] mutableCopy]; 

    if ([didContain count] == 0) { 
     NSLog (@"zero"); 

      // 
      // no favorites have ever been saved 
      // 


    } else { 

     // load the favorites into some array you synthesized just like before 
     self.tableFavoritesData = [[NSMutableArray alloc] init]; 
     self.tableFavoritesData = [[userDefaults objectForKey:@"MyFavorites"] mutableCopy]; 
    } 
+0

Pouvez-vous expliquer mieux ce qui ne va pas avec votre code? – rano

+0

Vous stockez/chargez la baie dans/depuis les valeurs par défaut de l'utilisateur? Si oui, comment le chargez-vous? Et quand et comment vérifiez-vous que '' @ "added" 'a été supprimé. –

+0

J'ai modifié la question –

Répondre

0

juste essayer d'ajouter @"added" après la création du réseau et regarder si elle est retirée imprimer le tableau sur. Peut-être que vous n'êtes pas en train de sérialiser correctement ou d'ajouter la valeur de la bonne façon.

3

Votre code n'a pas beaucoup de sens.

Pour charger le tableau des valeurs par défaut:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
self.tableFavoritesData = [[userDefaults arrayForKey:@"MyFavorites"] mutableCopy]; 

Est-ce tout ce qu'il ya à faire. Si vous ne disposez pas d'un tableau vide mis en place en tant que valeur par défaut, vous pouvez vérifier nil:

if (!self.tableFavouritesData) 
    self.tableFavoritesData = [[NSMutableArray alloc] init]; 

Ou vous ne serez pas en mesure de mettre quoi que ce soit dedans comme il sera toujours nul. (Vous pouvez également utiliser registerDefaults: pour enregistrer une valeur par défaut.Ceci est le moyen préféré et vous devez le faire avant de lire les valeurs par défaut, c'est-à-dire directement au démarrage).

+0

En supposant que self.tableFavoritesData est une propriété de rétention, vous voudrez probablement utiliser 'self.tableFavoritesData = [tableau NSMutableArray];' - sinon vous perdrez de la mémoire. –

Questions connexes