2010-08-18 5 views
0

comment puis-je demander à un tableau s'il contient un élément et s'il le fait à [[NSArray alloc] initWithObjects: @ "ces objets" automatiquement. ceci est mon fav .hcomment demander à un tableau si un objet est contenu?

@interface FavoriteViewController : UITableViewController { 
    NSMutableArray *favoritesArray; 
    NSMutableArray *didContain; 
} 
@property (nonatomic, retain) NSMutableArray *favoritesArray; 

@property (nonatomic, retain) NSMutableArray *didContain; 

c'est le .m

favoritesArray = [[NSMutableArray alloc]init]; 
didContain = [[NSMutableArray alloc]init]; 

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

    [didContain addObject:@"one"]; 
} 

et dans la vue détaillée controller.mi ce code ont

[[NSMutableArray alloc] init]; 
[favoritesArray addObject: @"one"]; 

i obtenir la table de travail cependant rien ne se manifeste ....

Répondre

0
NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Hello", @"World", nil]; 
    NSMutableArray *didContain = [[NSArray alloc] init]; 


    if([yourArray contains: @"Hello"]) 
{ 
     [didContain addObject:@"Hello"]; 
} 

ou

NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Hello", @"World", nil]; 
    NSMutableArray *didContain = [[NSArray alloc] init]; 

    [didContain addObject: [yourArray objectAtIndex:[yourArray indexOfObject:@"Hello"]]; 

Tout cela et plus est facilement disponible dans la documentation de la pomme. S'il vous plaît faire un peu de recherche google la prochaine fois. Bonne chance, j'espère que ça aide.

+0

Cependant, vous devez modifier le code ci-dessus si votre tableau contient plus d'un des objets que vous recherchez . – Jordan

+0

pour le premier exemple, je devrais utiliser didContain dans les données de la vue de la table ou "votre tableau". Je voudrais le modifier en ajoutant d'autres si c'est correct? –

+0

vous devrez honnêtement utiliser une structure en boucle et déclarer probablement un autre tableau des objets que vous recherchez. Boucle à travers le tableau contenant les objets que vous cherchez à voir s'ils sont contenus dans "yourArray" et s'ils sont ensuite copiés dans "didContain" –

0

utilisation filteredArrayUsingPredicate: Voir NSArray Class Reference et Predicate Programming Guide

Il semble que vous essayez d'utiliser une propriété non initialisée dans votre contrôleur de vue détaillée.

Normalement, vous initialisez propriétés dans votre puis init: ou viewDidLoad implémentations de méthode avant de présenter la vue dans votre contrôleur de vue parent, définissez la propriété en utilisant la propriété accesseurs

Cette ligne:

// DetailViewController.m initializer code 
[[NSMutableArray alloc] init]; // returned object is not used 

devrait-elle être :

favoritesArray = [[NSMutableArray alloc] init]; // view controller initialization code 

Au lieu d'appeler ceci:

[favoritesArray addObject:@"one"]; 

Après avoir créé votre detailViewController régler le favoritesArray avec le tableau filtré

// FavoriteViewController.m 
MyDetailViewController *dvc = [[MyDetailViewController alloc] initWithNibName:@"MyDetailViewController" bundle:nil]; 

// populate the array 
[dvc setFavoritesArray:didContain]; 

// Assuming you are using a navigation controller 

[navigationController pushViewController:dvc animated:YES]; 
[dvc release]; 
+0

great cela aide cependant comment j'ai un tableau qui ajoute différents objets à différents endroits et Je ne peux pas sembler l'obtenir pour charger les articles. J'ai utilisé la méthode addobject dans mon bouton pour ajouter un élément au tableau quand un bouton est cliqué. alors comment puis-je charger le tableau intact sans initwithobjects? –

+0

vous devrez montrer votre code. – falconcreek

+0

Sry pour la mauvaise formation je suis sur un iPhone ici c'est objectif c j'ai une ibaction avec le code [[NSMutableArray alloc] init]; [favoritesArray addObject: @ "un"]; // et dans la table des favoris affichez ce code // favoritesArray = [[NSMutableArray alloc] init]; didContain = [[NSMutableArray alloc] init]; if ([favoritesArray contient: @ "un"]); {[didContain addObject: @ "procès"]; } mais son crash à la partie if ... –

Questions connexes