2011-03-30 45 views
5

我嘗試將項目從NSMutableArray複製到另一個。將項目從NSMutableArray複製到另一個

[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]]; 

對於這兩個數組,它的工作:

我在兩個第一MutableArray(storiesRSS1storiesRSS2)添加項目。

之後,我想混合在第三個數組(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++; 
} 

但是,當我嘗試顯示每個項目,它總是null

你能幫助我,謝謝。

回答

4

NSMutableArray有一個addObjectsFromArray:您可能會覺得有用的方法。

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

在一個側面說明,你泄漏內存,當你做:

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

謝謝,但我需要交替每個元素storiesRSS1和storiesRSS2。 故事的第一項是storiesRSS1的第一項故事 第二項是storiesRSS2的第一項故事 第三項是storiesRSS1的第二個項目 故事四產品storiesRSS2 的第二個項目...... – Guillaume 2011-03-30 23:34:10

+0

可能是值得考慮看一下insertObjects:atIndexes:then。例如,添加來自RSS1的所有項目,然後在相關索引處插入來自RSS2的對象。 – 2011-03-30 23:47:55

0

這聽起來像stories爲零。任何發送給nil的消息都只返回nil。

0

嘗試使用此代碼:

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++; 
} 

因爲它似乎你可能不被分配內存故事陣列。希望有效。如果情況並非如此,請嘗試打印storyRSS1 & storiesRSS2陣列。

相關問題