2012-12-05 35 views
-2

我對Objective C編程(如幾天)非常陌生,並且很遺憾有一個iPhone應用程序在幾天內作爲一個類的項目到期(回顧過去我可能應該選擇不同的東西)。我的應用需要的主要功能之一是能夠從菜單中選擇一道菜,方法是首先在一頁上選擇膳食,然後在下一頁上選擇膳食,然後在最後一頁上選擇菜餚。我已經得到我的應用程序從互聯網API下載JSON文件並將其存儲爲NSArray變量,但現在我需要使用該數組來填充我的tableview。下面是我的應用程序的調試窗口下載的數組示例。我已經有了應用程序的基本框架(即幾個不同的視圖)。這來自一個示例應用程序,它使用來自plist文件的數據填充tableview行,但我想使用這個JSON數據。我將如何使用此數組填充存儲在此NSArray變量中的JSON數據的行? 謝謝!如何使用此JSON數據填充Objective C tableview

2012-12-05 03:29:48.973 MLBMobile[3858:c07] { 
    category = "BREAKFAST MEATS"; 
    date = "2012-12-05"; 
    meal = BREAKFAST; 
    name = "Low-Sodium Ham"; 
    portion = 1; 
    recipe = 319044; 
    unit = oz; 
} 
2012-12-05 03:29:48.975 MLBMobile[3858:c07] { 
    category = "BREAKFAST MEATS"; 
    date = "2012-12-05"; 
    meal = BREAKFAST; 
    name = "Roasted Low-Sodium Turkey"; 
    portion = 4; 
    recipe = 113503; 
    unit = oz; 
} 
2012-12-05 03:29:48.976 MLBMobile[3858:c07] { 
    category = "BREAKFAST ENTREES"; 
    date = "2012-12-05"; 
    meal = BREAKFAST; 
    name = "Cheddar Cheese"; 
    portion = 1; 
    recipe = 130029; 
    unit = oz; 
} 
2012-12-05 03:29:48.976 MLBMobile[3858:c07] { 
    category = "BREAKFAST ENTREES"; 
    date = "2012-12-05"; 
    meal = BREAKFAST; 
    name = "Hard Cooked Eggs - Cage Free"; 
    portion = 1; 
    recipe = 061009; 
    unit = each; 
} 

回答

0

用你的數組變量你可以遍歷每個元素。使用快速枚舉:

for(NSDictionary *dict in yourArrayVariable){ 
    NSString *category = [dict objectForKey:@"name"]; 
    //...you get the point 
} 

現在只需設置行的屬性即可填充行。例如,如果您使用的是默認UITableViewCell

cell.textLabel.text = name; 

還有更多的這一點,您可以更好的數據/模型/視圖分離做了一下,不過我已經包括示例,彷彿一切都已完成本地在一個文件中。

+0

謝謝!我在調試窗口中看到了膳食類別,但我得到了每道菜的膳食類別(所以我的列表看起來像早餐早餐等)。我如何才能爲每個獨特的膳食類別設置一行? – maximum411

+0

您可以擁有一個單獨的散列表(NSMutableDictionary),用於跟蹤已顯示的類別,因此,一旦設置了,就可以將一個鍵插入散列表中。在每次插入時,檢查它是否存在於散列表中,如果不存在,則跳過它。請考慮標記這個答案是否正確,如果它幫助你。 – nmock

+0

謝謝!我做了基本的工作,並得到它的工作(至少第一個看法)。 – maximum411