2011-03-10 1 views
0

que je fais un Iphone aplication et dans la classe de délégué i appeler une méthode d'une autre classe qui renvoie une NSMutableArray remplie de l'information nécessaire:Passant NSMutableArray de délégué

NSMutableArray *array = [[NSMutableArray initWithObjects:nil] retain]; 
array = [xml loadXML:@"info.xml"]; 

Maintenant, je veux passer ce tableau dans la classe viewController donc je peux faire des choses avec mon tableau mutable. Je fais ce qui suit:

... 
[self.window addSubview:viewController.view]; 
[self.viewController loadLocations:array]; 
[self.window makeKeyAndVisible]; 

En délégué, le tableau est ok, il a les données que je veux, cependant, dans la classe viewController (qui est un UIViewController) le tableau est foiré.

-(void)loadLocations:(NSMutableArray*)_array{ 
    NSLog(@"%f", [[_array objectAtIndex:0] lat]); // This sould be 42.000 but it is 0.00000 and all of the other indexes 

Répondre

2

Vous êtes en difficulté dès le début:

NSMutableArray *array = [[array initWithObjects:nil] retain]; 

Vous appelez « initWithObjects » sur « tableau », mais vous n'avez pas encore attribué « tableau ».

Vous voulez quelque chose comme:

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:nil]; 

ou tout simplement:

NSMutableArray *array = [[NSMutableArray alloc] init]; 
+0

Oh oui s'y trompe, mais il ne résout pas le problème. – marcg11

+0

ou encore plus simple '[NSMutableArray new]' – justin

1

Cette partie est invalide:

NSMutableArray *array = [[array initWithObjects:nil] retain]; 
array = [xml loadXML:@"info.xml"]; 

La première ligne n'est pas utilisé parce que la deuxième ligne est mise en le pointeur du tableau vers le résultat de [xml loadXML:]

Je pense que cela devrait suffire:

NSMutableArray *array = [[NSMutableArray alloc] initWithArray:[xml loadXML:@"info.xml"]];