2010-08-20 9 views
0

J'ai ce tableau appelé favoris référencé dans mon délégué de l'application. Quand je l'ai accès dans le contrôleur de vue j'utiliser ce codecomment enregistrer un tableau dans un fichier et charger et demander s'il contient un fichier spécifique

MultiViewAppDelegate *app = (MultiViewAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [app.favoritesArray addObject:@"one"]; 

Et dans les thats tableau censé afficher ces informations im essayant de se demander si le tableau contient un certain élément et si elle le fait pour afficher cet élément à l'aide ce code.

NSLog (@"2"); 
favoritesArray = [[NSMutableArray alloc]init]; 

didContain = [[NSMutableArray alloc]init]; 

NSLog (@"3"); 

if ([favoritesArray containsObject:@"one"]) 

{[didContain addObject:@"one"]; 
NSLog (@"4"); } 

cependant le code isnt courir après NSLog 3 ... quelqu'un peut me dire pourquoi?

Répondre

2

Tout d'abord,

NSLog (@"2"); 
favoritesArray = [[NSMutableArray alloc]init]; 

La ligne ci-dessus réinitialiser votre favoritesArray. Il va également fuir l'ancien.

didContain = [[NSMutableArray alloc]init]; 

NSLog (@"3"); 

if ([favoritesArray containsObject:@"one"]) 

Ici, vous demandez simplement un tableau vide s'il contient quelque chose, ce qui n'est évidemment pas le cas.

{[didContain addObject:@"one"]; 
NSLog (@"4"); } 

C'est pourquoi rien de ce qui précède ne se produit.

Au lieu de le réinitialiser, assurez-vous qu'il est défini à la place.

if (favoritesArray != nil && 
    [favoritesArray containsObject:@"one"]) { 
    NSLog(@"yay, it had one in it"); 
} else { 
    NSLog(@"it's nil or it didn't have one in it"); 
} 

Vous probablement pas besoin favoritesArray != nil, mais je l'ai mis parce que vous pourriez avoir mis vos affaires alloc-init parce que vous obtenez parfois une valeur nulle ici. Peu probable cependant.

if ([favoritesArray containsObject:@"one"]) { 
    // contains "one" 
} 

Cela devrait probablement le faire.

+0

Si 'preferredArray' est nul alors' [favoritesArray containsObject: @ "on"] 'retournera toujours NO, donc vous avez raison quand vous dites que la vérification nulle n'est pas nécessaire. –

0

Vérifiez si favoritesArray dans votre délégué est initialisé. Si c'est nil, la condition ne sera jamais vraie.

+0

que voulez-vous dire initié? –

+0

je l'ai sous - (void) applicationDidFinishLaunching: (UIApplication *) application { \t [fenêtre addSubview: tabBarController.view]; favoritesArray = [[NSMutableArray alloc] init]; Cependant, de quoi ai-je besoin pour ajouter le tableau dans les deux en-têtes et le synthétiser? –

Questions connexes