2014-11-14 18 views
8

Bir json verisini ayrıştırıyorum ve bu alandan biri bir içeriğe sahipse bir dizidir.Ama hiçbir içeriği yoksa sadece bir dizedir "Sonuç yok." bunu ayrıştırmak için aşağıdaki kodu kullanıyorum:Yalnızca bir kez çağrılan dizin yolu için satır

-(void)viewWillAppear:(BOOL)animated 


{ 
[super viewWillAppear:YES]; 
//URL is called. 
if ([status isEqualToString:@"success"]) 

{ 
       if ([[[json objectForKey:@"Items"] objectForKey:@"item_list"] isKindOfClass:[NSString class]]) 



       { 
        _Label.text = [NSString stringWithFormat:@"0"]; 
        ItemsArray = [[NSMutableArray alloc]init]; 
       } 
       else 
       { 
        ItemsArray = [[json objectForKey:@"Items"] objectForKey:@"item_list"]; 
        NSLog(@"%d",[ItemsArray count]); 
        float Amount = 0; 
        NSLog(@"%d",[ItemsArray count]); 
        if ([ItemsArray count]>0) 
        { 
         for (int i=0; i<[ItemsArray count]; i++) 
         { 
          NSMutableDictionary * temp3 = [ItemsArray objectAtIndex: i]; 
          NSString * x = [temp3 objectForKey:@"final"]; 
          Amount = Amount + [x floatValue]; 
         } 
         Label.text = [NSString stringWithFormat:@"%.2f",BidAmount]; 
        } 
        else 
        { 
         Label.text = [NSString stringWithFormat:@"0"]; 
        } 
       } 



       [TableViewOutlet reloadData]; 

}

Bu iyi çalışır.

Alan dize döndürdüğünde, sorun yok. Ancak alan bir dizi olduğunda sıkışıp kaldım. İlk kez projeyi çalıştırdıktan sonra, dizi sayısı 0'dan büyük olsa bile iyi çalışır. Ancak, ikinci zamandan itibaren dizi sayısı 0'dan fazla olduğunda bile Cellforrowatindexpath yöntemi çağrılmaz. Bunlar benim kodlarım :

-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; 
} 

-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
NSLog(@"%d",[ItemsArray count]); 
return [ItemsArray count]; 
} 

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

{ 
static NSString *CellIdentifier = @"TableViewCell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

if (cell==nil) 
{ 
    cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 
cell.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.025]; 
NSDictionary *temp = [ItemsArray objectAtIndex:indexPath.row]; 

UILabel *ItemName = (UILabel *)[cell viewWithTag:1000]; 
ItemName.text = [temp objectForKey:@"title"]; 

UILabel *Cost = (UILabel *)[cell viewWithTag:1001]; 
Cost.text = [temp objectForKey:@"final"]; 

return cell; 

} 

Birisi bana

+0

'ItemsArray' sayısını kontrol edin –

+0

Array içeriği var .. –

cevap

1

yardım lütfen ben sorunu size ItemArray korunmuyor olmasıdır düşünüyorum.

NSArray* array = [[json objectForKey:@"Items"] objectForKey:@"item_list"]; 
ItemsArray = [NSMutableArray alloc]]initWithArray:array]; 

Bu kod snippet'ini kullanın.

+0

Sizden daha çok beyefendi, ama üzgünüm çalışmıyor –

+0

Üzgünüm çocuklar ,,,,, Ben, hem hatları birleştirdiğimde çalıştı.Çok teşekkürler –

İlgili konular