从NSMutableArray复制项目到另一个数组

5

我想将NSMutableArray中的项目复制到另一个数组中。

我在我的前两个可变数组(storiesRSS1storiesRSS2)中添加了项目:

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

对于这两个数组,它们可以正常工作。

之后,我想将它们混合到第三个数组 (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!你能帮帮我吗,谢谢。
3个回答

4

NSMutableArray有一个addObjectsFromArray:方法,您可能会发现它很有用。

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

顺便提一下,当您执行以下操作时,会出现内存泄漏:

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

谢谢,但我需要交替每个元素的storiesRSS1和storiesRSS2。stories的第一项是storiesRSS1的第一项 stories的第二项是storiesRSS2的第一项 stories的第三项是storiesRSS1的第二项 stories的第四项是storiesRSS2的第二项 ... - Guillaume
也许可以看看insertObjects:atIndexes:。例如,将来自RSS1的所有项目添加,然后在相关索引处插入来自RSS2的对象。 - Tom Irving

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

看起来你可能没有为stories数组分配内存。希望这样能行。如果不是这种情况,请尝试打印storiesRSS1和storiesRSS2数组。


0

听起来stories是空的。发送给空值的任何消息都将返回空值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接