2012-02-09 33 views
0

我解析一個包含三個標籤的json提要,它們是Name,Status,Image,並將它存儲在一個NSMutableArray.if中,如果我的「status」爲「1」,我必須返回數據對應於大括號內的「Name」標記並將其填充到我的表視圖中。問題是如果它的true.im能夠返回唯一的值並且填充下面的整個tableview,那麼就是json結構,代碼和屏幕截圖。如何提取特定的值並填充到tableview中

JSON結構

{ 
    Image = "http://dev-parkguiden.knutpunkten.se/Content/Images/Icons/icon8.png"; 
    Name = "Caf\U00e9/restaurang"; 
    Status = 0; 
}, 
    { 
    Image = "http://dev-parkguiden.knutpunkten.se/Content/Images/Icons/icon9.png"; 
    Name = "Kiosk "; 
    Status = 0; 
}, 
    { 
    Image = "http://dev-parkguiden.knutpunkten.se/Content/Images/Icons/icon10.png"; 
    Name = "Toalett finns"; 
    Status = 1; 
}, 
    { 
    Image = "http://dev-parkguiden.knutpunkten.se/Content/Images/Icons/icon11.png"; 
    Name = "Parkeringsm\U00f6jligheter"; 
    Status = 1; 
}, 
    { 
    Image = "http://dev-parkguiden.knutpunkten.se/Content/Images/Icons/icon1.png"; 
    Name = Minigolf; 
    Status = 1; 
}, 

XCODE

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 



static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 

} 

for (int i=0; i<[self.media1 count]; i++) 
{ 

    NSDictionary *boy=[self.media1 objectAtIndex:i]; 


NSString *str=[[NSString alloc]initWithFormat:@"%@",boy]; 
    //NSLog(@"the value:%@",str); 

    if([str isEqualToString:@"1"]) 
    { 
     //NSDictionary *hai=[[boy objectAtIndex:indexPath.row]objectForKey:@"1"]; 
    // NSLog(@"the values availbale:%@",hai); 
     cell.textLabel.text=[self.story objectAtIndex:i]; 
      return cell; 

    } 

}

enter image description here

回答

1

,因爲你正在使用的循環,你立刻獲得最後的比賽記錄。爲什麼你在表中使用for循環。您必須檢查外部值並創建一個新數組,然後將該數組分配到表中。還張貼了一些更多的代碼,所以我可以解決你的問題

-(void)makeNewArray 
{ 
for (int i=0; i<[self.media1 count]; i++) 
{ 

    NSDictionary *boy=[self.media1 objectAtIndex:i]; 


    NSString *str=[[NSString alloc]initWithFormat:@"%@",boy]; 
    if([str isEqualToString:@"1"]) 
    { 
     [newArray addObject:[self.story objectAtIndex:i]]; 
    } 
} 
[tableView reloadData]; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    // Return the number of rows in the section. 
    return newArray.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 

} 
     cell.textLabel.text=[newArray objectAtIndex:indexPath.row]; 
      return cell; 

} 
+0

是der獲得整個value.if我可以在表視圖之外使用它的任何可能性? – kingston 2012-02-09 12:21:19

+0

是的只是在for循環中創建一個新數組。但出側桌視圖後,新陣列然後重新加載表新陣列 – Hiren 2012-02-09 12:24:49

+0

k將嘗試 – kingston 2012-02-09 12:30:51