将项目从NSMutableArray复制到另一个

时间:2011-03-30 23:19:57

标签: iphone objective-c

我尝试将项目从NSMutableArray复制到另一个。

我在我的两个第一个MutableArray(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 个答案:

答案 0 :(得分:4)

NSMutableArrayaddObjectsFromArray:您可能觉得有用的方法。

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

另一方面,当你这样做时,你会泄漏内存:

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

答案 1 :(得分:0)

听起来stories是零。发送给nil的任何消息都会返回nil。

答案 2 :(得分: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++;
}

因为看起来你可能没有为故事数组分配内存。希望有效。如果不是这样,那就试着打印故事RSSS1和故事RSS2阵列。