2014-02-06 3 views
1

Я делаю свой проект с использованием раскадровки, в моем проекте я буду анализировать данные json и отображать в симуляторе. вот мой JSONios: конвертировать html строку в nsstring и отображать в uitableview?

activityList =  (
       { 
      activityTitle = test; 
      activityType = Chat; 
      apiKey = null; 
      desc = "<p>asasasa</p>"; 
      id = 361; 
      issueTitle = "Issue Created By m43 (194)"; 
      sessionId = null; 
      status = true; 
      token = null; 
      when = "Sat, 30 Nov 2013 04:30 AM CET"; 
     }, 
       { 
      activityTitle = "test match private"; 
      activityType = "One Way Video Streaming"; 
      apiKey = null; 
      desc = "<p>test match private</p>"; 
      id = 335; 
      issueTitle = "test match (190)"; 
      sessionId = null; 
      status = true; 
      token = null; 
      when = "Fri, 29 Nov 2013 10:30 AM GMT"; 
     }, 

я синтаксический анализ JSON и отображаются все ДАННЫЕ в Tableview кроме этого desc = "<p>test match private</p>"; а, имея задачу преобразования, что HTML строки в NSString. somwhoe, как я пытался и превращенным с помощью этого

desc1 = [[items valueForKey:@"desc"] componentsJoinedByString:@","]; 
    NSLog(@"%@",desc1); 
    NSString *itemTitle = [desc1 stringByConvertingHTMLToPlainText]; 
    NSLog(@"%@",itemTitle); 

напечатанного мне это

<p>asasasa</p>,<p>test match private</p>,<p>test activity by m43</p>,<p>Test for chat activities</p>,<p>test 5 for admin</p>,<p>test ca activity title</p>,<p>test for video issue</p>,<p>activity for m43 by c31</p>,<p>test activity title community activism By u1</p>,<p>test 7</p>,<p>test</p>,<p>chat</p>,<p>rahul jaykar</p>,<p>test public unadkat</p>,<p>test activity</p>,<p>test chat</p>,<p>private activity</p>,<p>test session initation</p>,<p>join test&nbsp;<span>Your Activity Title</span><span class="required-indicator">*</span><span>&nbsp;</span></p>,<p>test 9</p> 

и после преобразования в обычный текст, как этот

asasasa ,test match private ,test activity by m43 ,Test for chat activities ,test 5 for admin ,test ca activity title ,test for video issue ,activity for m43 by c31 ,test activity title community activism By u1 ,test 7 ,test ,chat ,rahul jaykar ,test public unadkat ,test activity ,test chat ,private activity ,test session initation ,join test Your Activity Title*  ,test 9 

Теперь моя проблема заключается в том, чтобы показать это ДАННЫЕ в ярлыке, присутствующем в uitableviewcell;

вот мой код TableCell

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *simpleTableIdentifier [email protected]"activismCell"; 
    CAviewCELLCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier forIndexPath:indexPath]; 

    cell.activitytitle.text = (NSString *)[array1 objectAtIndex:indexPath.row]; 
    cell.idline.text = (NSString *)[array3 objectAtIndex:indexPath.row]; 
    cell.issuelabel.text = (NSString *)[array9 objectAtIndex:indexPath.row]; 
    cell.timelabel.text = (NSString *)[array10 objectAtIndex:indexPath.row]; 
    cell.typelabel.text = (NSString *)[array2 objectAtIndex:indexPath.row]; 
    sessid = (NSString *)[array4 objectAtIndex:indexPath.row]; 
    token = (NSString *)[array6 objectAtIndex:indexPath.row]; 
    apikey = (NSString *)[array7 objectAtIndex:indexPath.row]; 
    for (int i=0; i<[array8 count]; i++) { 

    } 


    NSLog(@"%@,%@",sessid,token); 
    NSString *stat =(NSString *)[array2 objectAtIndex:indexPath.row]; 
    NSLog(@"%@",stat); 
    NSString *trimmedString = [stat stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
    if([trimmedString isEqualToString:@"Two Way Video Streaming"] || [trimmedString isEqualToString:@"One Way Video Streaming"]) { 
     [cell.startvideo setHidden:FALSE]; 
     [cell.startvideo setImage:[UIImage imageNamed:@"ca_video.png"] forState:UIControlStateNormal]; 
     [cell.startvideo addTarget:self action:@selector(playAction) forControlEvents:UIControlEventTouchUpInside]; 
    } 
    else 
     [cell.startvideo setHidden:TRUE]; 
    return cell; 
} 

должны показать ДАННЫЕ в упорядоченно в cell.desclabel.text используя indexpath для ряда .. пожалуйста, помогите мне, как это сделать

+0

Не могли бы вы пояснить, хотите ли вы отображать ВСЕ в ячейке или ОДНОМ объекте на ячейку? Под одним я имею в виду activityTitle в ячейке 1, activityType в ячейке 2 и так далее. –

ответ

0

Создать массив из PLAINTEXT строки ниже.

desc1 = [[items valueForKey:@"desc"] componentsJoinedByString:@","]; 
NSLog(@"%@",desc1); 
NSString *itemTitle = [desc1 stringByConvertingHTMLToPlainText]; 
NSArray *arrNew = [itemTitle componentsSeparatedByString:@","]; 

Теперь измените ярлык ячейки.

cell.desclabel.text = [arrNew objectAtIndex:indexPath.row]; 
+0

спасибо, что это сработало отлично. – Naresh

+0

@Naresh: Обратите внимание, что это приведет к неправильным результатам, если какой-либо текст описания содержит запятую ... –

0

Прежде всего, нет необходимости создавать отдельные массивы array1, array2 ... для каждого ключа. Вместо

array1 = [items valueForKey:@"activityTitle"]; 
// ... and later: 
cell.activitytitle.text = (NSString *)[array1 objectAtIndex:indexPath.row]; 

вы можете просто сделать

cell.activitytitle.text = items[indexPath.row][@"activityTitle"]; 

И вместо разделения и присоединения массив элементов "DESC", используйте

NSString *desc1 = items[indexPath.row][@"desc"]; 
NSString *desc = [desc1 stringByConvertingHTMLToPlainText]; 

в cellForRowAtIndexPath.

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