2017-01-17 2 views
3

Webサービスから取得したUITableViewのデータを表示しています。 キャッチされない例外により 「NSInvalidArgumentException」、理由に私はアプリを終了いくつかの奇妙なクラッシュ__NSCFDictionary stringByDeletingPathExtensionクラッシュ

を取得していますUITableViewにこのデータを追加しようとしたときに:「 - [__ 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

を試してみてください;'、あなたによりますモデル。 _first_あなたは辞書の_then_キーの値が必要だからです。 – holex

+0

** valueForKeyPath **、 'cell.lbl_eventName.text = [[arrayEventData valueForKeyPath:@" venue_name "] objectAtIndex:indexPath.row]; ' –

答えて

3

にデータを追加しています方法です:あなたは

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

をあなたはdictの値にアクセスしようとしています配列で。まず

[Self.arrayEventData objectAtIndex:indexPath.row]からDictionaryオブジェクトとあなたはまた、NULLまたはnilの値のためのいくつかの検証とそれを扱うことができる

[dict valueForKey:@"venue_name"] 
1

このソリューションを試すことができます

cell.lbl_eventName.text = [[arrayEventData objectAtIndex:indexPath.row] 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

多分... `cell.lbl_eventName.text = [[arrayEventData objectAtIndex:indexPath.row] valueForKey: "venue_name" @]この

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

同じ答えが私から与えられます。 –

+1

正しい回答は常に同じです;) –

+0

haha​​ha.perfect :) –

関連する問題