2011-03-30 21 views
5

Intento copiar elementos de NSMutableArray a otro.Copie elementos de NSMutableArray a otro

agrego artículos en mi dos primeros MutableArray (storiesRSS1 y storiesRSS2):

[item setObject:currentTitle forKey:@"title"]; 
[item setObject:currentLink forKey:@"link"]; 
[item setObject:currentSummary forKey:@"summary"]; 
[item setObject:currentDate forKey:@"date"]; 
[item setObject:currentImage forKey:@"image"]; 
[item setObject:currentMovie forKey:@"movie"]; 
[storiesRSS1 addObject:[item copy]]; 


[item setObject:currentTitle forKey:@"title"]; 
[item setObject:currentLink forKey:@"link"]; 
[item setObject:currentSummary forKey:@"summary"]; 
[item setObject:currentDate forKey:@"date"]; 
[item setObject:currentImage forKey:@"image"]; 
[item setObject:currentMovie forKey:@"movie"]; 
[storiesRSS2 addObject:[item copy]]; 

Por estas dos matrices que funcione.

Después de eso quiero mezclar ambos en una tercera matriz (stories).

int i=0; 
int nbElement=[storiesRSS1 count]+[storiesRSS2 count]; 
while (i<nbElement) { 
    if (i<[tempArrayTed count]) { 
     [stories addObject:[storiesRSS1 objectAtIndex:i]]; 
    } 
    if (i<[tempArrayYoutube count]) { 
     [stories addObject:[storiesRSS2 objectAtIndex:i]]; 
    } 
    i++; 
} 

Pero cuando trato de mostrar cada uno de los elementos, siempre es null!

¿Podría ayudarme? Gracias.

Respuesta

4

NSMutableArray tiene un addObjectsFromArray: método que puede serle útil.

[stories addObjectsFromArray:storiesRSS1]; 
[stories addObjectsFromArray: storiesRSS2]; 

En una nota lateral, usted está perdiendo memoria cuando se hace:

[storiesRSS1/2 addObject:[item copy]]; 
+0

Gracias, pero necesito alternar cada elemento storiesRSS1 y storiesRSS2. Primer elemento de historias es el primer artículo de storiesRSS1 Segundo elemento de historias es el primer artículo de storiesRSS2 Tercer punto de historias es el segundo elemento de storiesRSS1 Cuarto punto de historias es el segundo elemento de storiesRSS2 ... – Guillaume

+0

podría valer la pena tomar un vistazo a insertObjects: atIndexes: luego. Por ejemplo, agregue todos los elementos de RSS1, luego inserte los objetos de RSS2 en los índices relevantes. –

0

Suena como stories es nula. Cualquier mensaje enviado a nil solo devuelve nil.

0

Trate de usar este código:

stories=nil; 
[stories release]; 
stories=[[NSMutableArray alloc]init]; 
int i=0; 
int nbElement=[storiesRSS1 count]+[storiesRSS2 count]; 
while (i<nbElement) { 
    if (i<[tempArrayTed count]) { 
     [stories addObject:[storiesRSS1 objectAtIndex:i]]; 
    } 
    if (i<[tempArrayYoutube count]) { 
     [stories addObject:[storiesRSS2 objectAtIndex:i]]; 
    } 
    i++; 
} 

ya que parece que no puede ser que la asignación de memoria a las historias de matriz. Espero que funcione. Si este no es el caso, intente imprimir historiasRSS1 & historias matricesRSS2.

Cuestiones relacionadas