2011-12-22 3 views
0

Я использую tableview для заполнения массива из json-файла ... В моем представлении Controller у меня есть tableview.when я запускаю проект, мои таблицы представления кодировки не исполняются. Я не знаю y? кто-нибудь поможет мне PLS. Это мой файл viewcontroller.JSON с использованием Tableview для заполнения массива

#import "JSONparserViewController.h" 
    @implementation JSONparserViewController 
    @synthesize arraydata; 

    - (void)didReceiveMemoryWarning 
    { 
     [super didReceiveMemoryWarning]; 
     // Release any cached data, images, etc that aren't in use. 
    } 


    #pragma mark - View lifecycle 

    - (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     // Do any additional setup after loading the view, typically from a nib.  
    } 


    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
     NSLog(@"No Of Elements in Array Data: %d",[arraydata count]); 
     return [arraydata count]; 
} 

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     return 80; 
    } 


    // Customize the appearance of table view cells. 
    - (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]; 
     } 

     // Configure the cell... 
     NSLog(@"%@",arraydata); 
     NSDictionary *aTweet = [arraydata objectAtIndex:[indexPath row]]; 
     cell.textLabel.text = [aTweet objectForKey:@"name"]; 
     // NSDictionary *newArray=[aTweet objectForKey:@"properties"]; 
     // 
     // NSDictionary *newArray1=[newArray objectForKey:@"propertyMeta"]; 
     // cell.detailTextLabel.text = [newArray1 objectForKey:@"name"]; 
     // cell.detailTextLabel.text = [newArray objectForKey:@"value"]; 
     cell.textLabel.adjustsFontSizeToFitWidth = YES; 
     cell.textLabel.font = [UIFont systemFontOfSize:12]; 
     cell.textLabel.minimumFontSize = 10; 
     cell.textLabel.numberOfLines = 4; 
     cell.textLabel.lineBreakMode = UILineBreakModeWordWrap; 

     //cell.detailTextLabel.text = [newArray1 objectForKey:@"type"]; 

     // NSURL *url = [NSURL URLWithString:[aTweet objectForKey:@"profile_image_url"]]; 
     // NSData *data = [NSData dataWithContentsOfURL:url]; 
     // cell.imageView.image = [UIImage imageWithData:data]; 
     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     NSLog(@"HIIIIIIIIII"); 
     return cell; 

    } 
+0

В приведенной выше кодировке есть NSLog, который также не выполнен. –

+1

Я думаю, что вы ищете [JSON Parsing in xCode] (http://sugartin.info/2011/10/19/json-parsing-in -xcode /). –

+0

, вы, должно быть, забыли установить делегат для источника данных. – samfisher

ответ

0

Ваша проблема в том, что у вас нет данных в объекте arraydata. Его счет равен нулю. Поэтому, несмотря на то, что вы установили весь делегат & datasource, ваши методы делегирования таблицы не будут вызываться, потому что когда он вызывает noofrowinSection, он возвращает ноль.

Проверьте, что у вас есть данные в вашем массиве.

+0

В моем массиве я устанавливаю данные из AppDelegate. Прежде чем установить значение массива UITableView, загруженное в симулятор. Так что это значение массива возвращает ноль, а im не получает мое табличное представление с данными. В любом случае спасибо Бадди ... Я узнал, что как раз перед ... Вы правы! –

0

Вы инициализировали свой объект arraydata ...? и также мне кажется, что вы не задали делегат и источник данных для вашего табличного представления, из-за которого не вызываются ваши методы делегирования nslog.

+0

Я уже инициализировал arraydata, а также установил оба делегата и datasource.still, я не понимаю эту проблему ... im одна из ошибок также заключается в том, что «ожидается, что в конце запуска приложения будут установлены корневые контроллеры» –

0

Сделайте это, чтобы установить делегат и источник данных tableView в файл заголовка.

@interface JSONparserViewController: UIViewController<UITableViewDelegate,UITableViewDataSource> 

{

}

Также проверьте, что ваш ArrayData массив задается память или not.If не дать ему память первого

0

вы должны нит выделить свой массив. во-первых, вы должны распределить свой массив везде, где вы назначаете значение вашего массива. NSLog ваш массив будет отображаться, если он будет напечатан, тогда он должен быть выполнен

0

Убедитесь, что у вас есть данные в вашем массиве. И один раз после разбора выполняется перезагрузка таблицы в методе connectiondidfinishloading. Таблица будет автоматически перезагружена.

Смежные вопросы