2015-09-07 28 views
1

此代碼:轉換字典的數組中的單個陣列

server_response = [{id:1},{id:2},{id:3},{id:4}] 

我收到上述來自服務器的響應,現在我只想要的ID在一個陣列像

ids = [1,2,3,4]; 

名單我知道我們能做for循環,但是如果在響應數組中有數千個id,則需要很長時間。

有沒有更好的方法來達到上述方程式?

+0

如果你想看看如何使用循環:請參閱此鏈接:http://stackoverflow.com/questions/32414456/how-to-give-the-integer-key-value-for -dictionary/32414512?noredirect = 1#comment52737940_32414512 –

+1

id result = [array valueForKey:@「id」] – Rog

+0

@Rog :: awesome ...非常感謝你...... –

回答

2
NSArray *result = [yourArray valueForKey:@"id"] 

從NSArray的實例方法的文檔valueForKey:

返回一個包含調用valueForKey的結果的數組:每個數組的' s對象

2
NSMutableArray *resultArray = [NSMutableArray array]; 
for (NSDictionary *dict in server_response) { 

    [resultArray addObject:[dict objectForKey:@"id"]]; 
} 

試試上面的代碼。希望它能幫助你。結果陣列具有最終值

+0

謝謝,但我們可以做沒有for循環,因爲如果在響應數組中的一千個ids然後編譯器需要太多時間來執行.. –

0
NSArray *server_response = @[@{@"id":@"1"},@{@"id":@"2"},@{@"id":@"3"},@{@"id":@"4"}]; 

    NSMutableArray *resultArray = [NSMutableArray array]; 

    NSString *birdtemp; 
    for (NSDictionary *object in server_response) { 
     birdtemp = object[@"id"]; 
     [resultArray addObject:birdtemp]; 
    } 
    NSLog(@"%@",resultArray); 

輸出:[ 1, 2, 3,]

+0

id result = [數組valueForKey:@「id」]這是解決方案.. –

+0

沙我知道你的答案是正確的,但我想不做循環... –

+0

奧凱沒有問題。 thanx @BandishDave –