2013-04-23 2 views
0

Я выборки данных из веба-службы:Нагрузочного приложение из-за неперехваченное исключение «NSInvalidArgumentException», причина: «- [Home isEqualToString:]

//temp1 is NSDictionary 
//responseArr1 is NSMutableArray 
for(temp1 in responseArr1)......., 
{ 
    quesTxt = [[temp1 objectForKey:@"question_text"] stringByReplacingOccurrencesOfString:@"%PROFILENAME%" withString:del.onlyFirstName]; 

    quesID = [temp1 objectForKey:@"idlife_stage_question"]; 

    Home *objHome=[[Home alloc] init]; 

    objHome.homeQuesTxt = quesTxt; 
    objHome.homeQuesID = quesID; 

    [quesArray addObject:objHome]; 

    //[quesArray addObject:[[temp1 objectForKey:@"question_text"] stringByReplacingOccurrencesOfString:@"%PROFILENAME%" withString:del.onlyFirstName]];//this works fine 

     } 

Всей дату, когда я пытаюсь заполнить в палитре его просмотр дает исключение.

сборщика вид делегат:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { 
    UILabel *retval = (id)view; 
    if (!retval) { 
     retval= [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)]; 
    } 

    retval.text = [quesArray objectAtIndex:row];.........// **EXCEPTION HERE**... 

    retval.font = [UIFont boldSystemFontOfSize:14]; 
    retval.numberOfLines = 3; 

    return retval; 
} 

образец моего веб-сервиса:

{ 
     "idlife_stage_question" = 35; 
     "life_stage_idlife_stage" = 1; 
     "profile_idprofile" = 0; 
     "question_text" = "When %PROFILENAME% first smiled?";..//%PROFILENAME% replaces with user name which i have 
     sequence = 34; 
    } 

Главная подкласс NSObject

Пожалуйста, помогите.

+0

Положите точку останова на ваш код и проверьте правильную точку сбой? Показать код аварии для нас ... – Mani

+3

ваш Label.text - это строка, и вы назначаете ей объект. – nsgulliver

+0

Я согласен с @nsgulliver –

ответ

1
retval.text = [quesArray objectAtIndex:row]; 

Здесь вы видите quesArray.

Который, как: [quesArray addObject:objHome];

И objHome является: Home *objHome=[[Home alloc] init];

Так вы ошибки здесь, вы пытались поместить объект в retval, ожидающий NSString.

Вы должны использовать что-то как:

retval.text = [[quesArray objectAtIndex:row] homeQuesTxt]; //or anyother property that you want to show in text 
+0

Hey Anoop, это помогло мне, но мне также нужно вставить пользовательскую строку в массив, которая будет отображаться каждый раз в конце aray. Как я могу это сделать? – user2268539

+0

@ user2268539: что такое настраиваемая строка в массиве? вы хотите добавить туда текст? –

+0

Да ...как «Создайте свой вопрос» – user2268539

1
retval.text = [quesArray objectAtIndex:row]; 

Ваш retval.text является строкой, и вы назначаете ему объект

Вы могли бы сделать, как это

Home *newHome=[quesArray objectAtIndex:row]; 

    retval.text=newHome.homeQuesTxt; 
+0

Спасибо, теперь он отображает данные, но когда я выбираю прокрутку, он выдает другое исключение: Завершение приложения из-за неотображенного исключения «NSInvalidArgumentException», причина: '- [__ NSCFConstantString homeQuesTxt]: непризнанный селектор, отправленный в экземпляр 0x1e72a8 – user2268539

+0

here..retval.text = newHome.homeQuesTxt; – user2268539

+0

Проверьте, как вы определяете homeQuesTxt. – nsgulliver

0

quesArray заселен Home Объекты

Home *home = quesArray[row]; 
retval.text = home.homeQuesTxt; 
Смежные вопросы

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