2012-11-05 371 views
0

我想更新一個可變數組。我有一個數組「ListArray」與一些鍵像「desc」,「標題」在另一邊(單擊按鈕。)我有一個數組名稱newListArray它來自Web服務,並具有不同的數據,但具有相同的鍵如「 desc「」標題「。所以我想在「ListArray」中添加該數據。不想替換數據只是在相同的鍵上添加數據。所以我可以在tableview中顯示。如何將對象追加到NSMutableArray?

..........所以我的問題是如何在「ListArray」中添加數據。或任何其他方式表明的tableview,但用舊的數據只是想更新數據

 NSMutableArray *newListArray = (NSMutableArray*)[[WebServices sharedInstance] getVideoList:[PlacesDetails sharedInstance].userId tokenValue:[PlacesDetails sharedInstance].tokenID mediaIdMin:[PlacesDetails sharedInstance].minId mediaIdMax:[PlacesDetails sharedInstance].maxId viewPubPri:@"Public_click"]; 

NSDictionary *getNewListDic = [[NSDictionary alloc] initWithObjectsAndKeys:newListArray,@"videoList", nil]; 

[listVidArray addObject:getNewListDic]; 




NSArray *keys = [NSArray arrayWithObjects:@"desc",@"url",@"media_id",@"img",@"status",@"media_id_max",@"fb_url",@"title", nil] ; 

NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 

for(int i = 0 ; i < [listVidArray count] ; i++) 
{ 

    for(id theKey in keys) 
    { 
     // NSMutableArray *item = [NSMutableArray array]; 

     NSLog(@"%@",theKey); 

     NSLog(@"%@",keys); 


     [dict setObject:[[[listVidArray objectAtIndex:i]valueForKey:@"videoList"] valueForKey:theKey] forKey:theKey]; 

//  [dict setObject:[newListArray valueForKey:theKey] forKey:theKey]; 

    } 
} 

enter image description here

回答

1

如果你的newListArray從oldListArray完全不同,然後清除舊人,和使用新的數據來適應它。

否則,您需要合併這兩個數組。一種方法是檢查newListArray中的 數據是否不在oldListArray中,然後確定 是否將其添加到oldListArray中。

當更新oldListArray時,請調用tableView的-reloadData

+0

這是耗時的,每個對象進行比較! –

+0

但如果沒有選擇oldList中已存在的那些,則可能存在重複數據的問題。挑選事情是另一回事,當然,一個接一個的比較本身並不是一個好方法。當然還有其他方法可以進行數組比較。 – BabyPanda

1

如果我沒有誤解你的問題,你可以做這樣的事情:

[listArray addObjectsFromArray:newListArray]; 
[_tableView reloadData]; 
相關問題