如何从iOS中的这个多维数组进行迭代? 此数据来自JSON
(
(
"burger meal",
"getImage.ashx?id=1",
150,
300,
"get a free burger"
),
(
"chinese combo",
"getImage.ashx?id=2",
350,
700,
"get a combo free"
),
(
"cheeese cake",
"getImage.ashx?id=3",
350,
700,
"get a cake free with meal"
)
)
我需要在索引3处使用对象,例如在UITableView中= 150,350,350。
我试过这个
NSArray *array = jsonArray;
for (NSArray *newArray in array) {
[newArray addObjectFromArray:array];
}
答案 0 :(得分:2)
试试这个,在这段代码中,arrResult包含你在特定位置需要的所有值。
NSArray *array = jsonArray;
NSMutableArray *arrResult = [[NSMutableArray alloc]init];
for (NSArray *newArray in array) {
[arrResult addObject:[newArray objectAtIndex:2]];
}
答案 1 :(得分:1)
这很简单。让TableView为您迭代数组。您的tableView已经在迭代,不会通过自己迭代数组来增加开销。如果你这样做,你就会浪费处理能力。
首先,修改您的numberOfRowsInSection
委托方法,如下所示:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [jsonArray count]; //Provide your json array here.
}
然后您必须使用cellForRowAtIndexPath
方法执行此操作:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Do everything that you need to do to get the cell. Here we will deal with only string retrieval from json array.
if(jsonArray count]>indexPath.row){
NSArray *innerArray = [jsonArray objectAtIndex:indexPath.row]; //You got the inner array
if(innerArray count]>2){
NSString *yourDesiredString = [innerArray objectAtIndex:2]; //You got the string. Use it now as you wish. It will be 150 for the first cell, 350 for the second and 350 for the third one as well.
}
}
}
我没有在这里添加任何例外检查,这是你自己要做的事情。我已经添加了基本检查以防止在无关数据的情况下崩溃,你应该扩展它。
假设您希望将此字符串设置为每个单元格。如果我误解了您的问题或者您需要提问,请发表评论