2016-12-12 1 views
-1

я есть NSDictionary вроде этого:iOS: Как отделить ключевые значения в нескольких словарях, которые находятся в одном массиве?

(
    { 
    bp = "158/56"; 
    dateTime = "05/12/2016 11:51:12 AM"; 
    doc =   { 
     "email_id" = "[email protected]"; 
     exception = 0; 
     gender = Male; 
     id = 0; 
     "mobile_no" = 8149910113; 
     name = Kabadia; 
     "profile_id" = 0; 
     qualification = MBBS; 
     "reg_id" = 100; 
     salutation = Mr; 
     "wellness_id" = IN8S2D29A2; 
    }; 
    "follow_up" = 14; 
    id = 6; 
    medicine =   (
     "Injection,Crocin,5,0-1-0,After Meal,2", 
     "Powder,churan,10,1-0-0,Before Meal,14", 
     no, 
     no, 
     no, 
     no, 
     no, 
     no, 
     no, 
     no 
    ); 
    patient =   { 
     "email_id" = "[email protected]"; 
     exception = 0; 
     gender = Male; 
     id = 0; 
     "mobile_no" = 8624088776; 
     name = kamlesh; 
     "profile_id" = 0; 
     qualification = ""; 
     "reg_id" = 101; 
     salutation = Mr; 
     "wellness_id" = IND16HRR65; 
    }; 
    weight = 47; 
} 
) 

Я хочу, чтобы отобразить выше информацию, как следующим образом: enter image description here Но я понятия не имею о том, как сделать это. Я искал это, но я не понял, как это сделать.

Что я сделал:

В предыдущем Посмотреть контроллер я отобразил несколько названия рецепта. после нажатия на конкретную ячейку я назвал это представление, и я получил ответ от сервера, который я хочу отобразить, как показано выше.

Я принял UITableView на экране для этого.

Я взял 1 статический пользовательский элемент для этого.

Но я не знаю, как это сделать.

Пожалуйста, любой может решить мою проблему. помощь будет заметна.

+0

Необходимо принять TableView для этого экрана? – PiyushRathi

+0

да, я сделал. но я не понял, как отображать весь контент в этом. Помогите мне в этом вопросе ... @ PiyushRathi –

+0

Это будет просто для цикла. –

ответ

2

Обновлено Ответа

if (indexPath.row < responseArray.count){ 

    NSString *docName = @""; 
    NSString *contact = @""; 
    NSString *wellness_id = @""; 
    if ([selectedDict valueForKey:@"doc"] != nil){ 

     NSDictionary *doctorDict = [selectedDict valueForKey:@"doc"]; 
     NSString *lDocName = [doctorDict valueForKey:@"name"]; 
     if(lDocName.length > 0){ 
      docName = lDocName; 
     } 

     NSString *qulification = [doctorDict valueForKey:@"qualification"]; 
     if(qulification.length > 0){ 
      docName = [NSString stringWithFormat:@"%@ %@", docName, qulification]; 
     } 

     NSString *mobile_no = [doctorDict valueForKey:@"mobile_no"]; 
     if(mobile_no.length > 0){ 
      contact = mobile_no; 
     } 

     NSString *email_id = [doctorDict valueForKey:@"email_id"]; 
     if(email_id.length > 0){ 
      contact = [NSString stringWithFormat:@"%@/%@", contact, email_id]; 
     } 
     NSString *wellness_idTemp = [doctorDict valueForKey:@"wellness_id"]; 
     if(wellness_idTemp.length > 0){ 
      wellness_id= [NSString stringWithFormat:@"Wellness_Id : %@", wellness_idTemp]; 
     } 
    } 
    cell.docNameLabel.text = docName; 
    cell.contact.text = contact; 
    cell.wellnessID.text = wellness_id; 

    NSString *patientName = @""; 
    NSString *patientcontact = @""; 
    NSString *patientWellness_id = @""; 
    NSString *bloodPressure = [selectedDict valueForKey:@"bp"]; 
    NSString *weight = [selectedDict valueForKey:@"weight"]; 

    if ([selectedDict valueForKey:@"patient"] != nil){ 

     NSDictionary *patientDict = [selectedDict valueForKey:@"patient"]; 
     NSString *lName = [patientDict valueForKey:@"name"]; 
     if(lName.length > 0){ 
      patientName = lName; 
     } 

     NSString *mobile_no = [patientDict valueForKey:@"mobile_no"]; 
     if(mobile_no.length > 0){ 
      patientcontact = mobile_no; 
     } 

     NSString *email_id = [patientDict valueForKey:@"email_id"]; 
     if(email_id.length > 0){ 
      patientcontact = [NSString stringWithFormat:@"%@/%@", contact, email_id]; 
     } 
     NSString *wellness_idTemp = [patientDict valueForKey:@"wellness_id"]; 
     if(wellness_idTemp.length > 0){ 
      patientWellness_id = [NSString stringWithFormat:@"Wellness Id : %@", wellness_idTemp]; 
     } 
    } 
    cell.patientNameLabel.text = patientName; 
    cell.contact.text = patientcontact; 
    cell.wellnessID.text = wellness_id; 
    cell.bp.text = bloodPressure; 
    cell.weight.text = weight; 
} 

Надеется, что это поможет.

+0

после клика по представлению рецепта Я звоню в веб-службу и получил ответ –

+0

@SurajSukale, поэтому вы можете взять dict в индексе 0 из массива ответа и показать в своем табло, как указано выше. – PiyushRathi

+0

Я сохранил свой ответ как _arr = [NSArray arrayWithArray: ResponseArray]; а затем в - (UITableViewCell *) tableview ----- метод, я использую как NSDictionary * content = [_arr objectAtIndex: indexPath.row]; но я получил нуль, когда я печатаю контент ...... означает в коде ur, selecteddict имеет значение null –

2

Согласно вашей структуре данных, я предполагаю, что ваши данные являются своего рода единственным объектом, поэтому ясно, что его не коллекция (массив) такого же типа объектов, поэтому я бы предложил вам создать только одну настраиваемую ячейку для всей этой единственной записи ,

В этом случае ваш TableView будет иметь только одну строку.

В пользовательской ячейке: позволяет называть его «PatientDetail»

  • Добавить все ярлыки и элементы управления, которые вы хотите показать для каждого собственности и подключение розеток все, что требуется.
  • Если вы используете Autolayout, то предоставляете относительные ограничения для всех элементов управления, иначе задавайте кадр каждого элемента управления динамически, вычисляя высоту его содержимого.

Как это работает?

Как вы сказали, его подробный экран конкретного списка, поэтому мы покажем одну строку в виде таблицы со всеми подробностями в ней.

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

В follwing код

responseDictNSDictionary, который является первым объектом ответа, как ваш ответ является своего рода массива.

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

    PatientDetail *cell=[tableView dequeueReusableCellWithIdentifier:@"PatientDetail" forIndexPath:indexPath]; 

    //Setting 
    [cell.lbDateTime setText:[responseDict valueForKey:@"dateTime"]]; 
    //Doctor name Just 
    [cell.lbDoctorName setText:[[responseDict objectForKey:@"doc"]valueForKey:@"name"]]; 

    //Follow the above steps for all the details 



    return cell; 
} 
+0

. Я сохранил свой ответ как _arr = [NSArray arrayWithArray: ResponseArray]; а затем в - (UITableViewCell *) tableview ----- метод, я использую как NSDictionary * content = [_arr objectAtIndex: indexPath.row]; но я получил нуль, когда я печатаю контент .... в чем проблема .. @Mahesh –

+0

@SurajSukale вы следуете моему ответу? – Mahesh

+0

Да, в вашем ответе нет проблем, но я получил нулевое значение в контенте. –

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