2012-04-30 43 views
0

我有兩個由關鍵country_id(一個國家 - 很多城市)鏈接的json文件,來自我在NSDictionary s中編寫的json文件中的數據。從NSDictionary獲取數據

問題:如果我從第一個國家NSDictionary(國家數據字典)中選擇一個國家如何顯示所有綁定到其他字典(城市數據字典)中所選country_id的數據?


我試過了嗎?

我想下一步該怎麼做:檢查第二NSDictionary(市數據字典)的所有鍵值爲他們平等選定county_id

//dict3 - dictionary of cities data 
    for (int i = 0; i<=[[dict3 valueForKey:@"country_id"] count];i++) 
     { 
     if ([[[dict3 valueForKey:@"country_id"] objectAtIndex:i] isEqualToString:appDelegate.idSelectedCountry]) 
     { 
     NSLog(@"object %@",[nameCities objectAtIndex:i]); //array of cities name 
     }} 

但是因爲我的JSON文件是相當大的,這是需要很長時間計算。

+0

我認爲,這種做法是非常糟糕 – ignotusverum

回答

1

您應該使用核心數據這種事情,並有城市和國家實體的關係。它會更快,更正確。看看這個教程: http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started

更新: 如果你想因爲某些原因確實使用的NSDictionary因爲你現在做的,你至少可以使用塊。它比循環更快一點:

[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ 
    [self processKey:key value:obj]; 
}]; 
+0

我是怕你告訴我這:) – ignotusverum

+0

@anonymous祝你好運;)這裏有一個教程如何如果需要,請將JSON映射到核心數據:http://www.cimgf.com/2011/06/02/saving-json-to-core-data/ –

+0

謝謝,我會嘗試使用核心數據 – ignotusverum