2017-01-17 1 views
3

Я показываю данные в UITableView, взятых из веб-службы. При попытке добавить данные в UITableView я получаю некоторые странные аварии__NSCFDictionary stringByDeletingPathExtension crash

, истекающие приложение из-за неперехваченное исключением «NSInvalidArgumentException», причину: «- [__ NSCFDictionary stringByDeletingPathExtension]: непризнанный селектор направил к экземпляру 0x7f9bc68530e0»

Может кто-нибудь сказать мне, какая это ошибка. это мой ответ

<__NSCFArray 0x7fd2846dec80>(
{ 
    DISTANCE = "2677.2557594500167"; 
    POPULARITY = 0; 
    PRICE = ""; 
    "bar_id" = 1; 
    "event_id" = ""; 
    "event_name" = ""; 
    "is_following" = 0; 
    "participant_count" = 0; 
    "venue_address" = “abc”; 
    "venue_image" = "http://dsfdsf.com/uploads/venue_icon/original/8PHHBUbASoZZXdQNOyqL1jKAmd08rowg.jpg"; 
    "venue_name" = "CLUB"; 
}, 
{ 
    DISTANCE = "2677.2557594500167"; 
    POPULARITY = 0; 
    PRICE = ""; 
    "bar_id" = 2; 
    "event_id" = ""; 
    "event_name" = ""; 
    "is_following" = 0; 
    "participant_count" = 0; 
    "venue_address" = “def”; 
    "venue_image" = "http://dsfdsf.com/uploads/venue_icon/original/8PHHBUbASoZZXdQNOyqL1jKAmd08rowg.jpg; 
    "venue_name" = “Club"; 
} 
) 

Это путь я добавление данных в UITableViewCell

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
cell.lbl_eventName.text = [[arrayEventData valueForKey:@"venue_name"]objectAtIndex:indexPath.row]; 
} 
+3

может быть ... 'cell.lbl_eventName.text = [[arrayEventData objectAtIndex: indexPath.row] valueForKey: @ "venue_name"];', в соответствии с вашими модель; потому что _first_ вам нужен словарь _then_ значение для ключа. – holex

+0

Может быть, вы ищете ** valueForKeyPath **, 'cell.lbl_eventName.text = [[arrayEventData valueForKeyPath: @" имя_события "] objectAtIndex: indexPath.row];' –

ответ

3

попробовать это:

cell.lbl_eventName.text = [[arrayEventData objectAtIndex:indexPath.row] valueForKey:@"venue_name"]; 
1

Вы можете попробовать это решение

NSDictionary*dict  = [Self.arrayEventData objectAtIndex:indexPath.row]; 
cell.lbl_eventName.text = [dict valueForKey:@"venue_name"]; 
1

Вы пытаетесь получить доступ к значению dict в массиве. Сначала словарь объект от

[Self.arrayEventData objectAtIndex:indexPath.row] и называют

[dict valueForKey:@"venue_name"] 
0

Вы также можете справиться с несколькими проверки для нулевой или нулевой стоимости.

NSString *strVanue = [[arrayEventData objectAtIndex:indexPath.row] valueForKey:@"venue_name"]; 

if(strVanue != nil || strVanue != (id)[NSNull null]){ 

    cell.lbl_eventName.text = strVanue; 
} 
0

попробовать это

NSDictionary *yourDict =[yourArray objectAtIndex:indexPath.row]; 
cell.lbl_eventName.text = [yourDict valueForKey:@"venue_name"]; 
+0

Тот же ответ дается мной. –

+1

Правильные ответы всегда одинаковы;) –

+0

hahaha.perfect :) –