Привет
Я столкнулся с этой проблемой, когда при назначении пустой переменной переменной xcode выдает исключение [NSPlaceholderString initWithString:]: nil argument
Мой сценарий
1. Установите соединение с сервером, который выдает xml.
2. Я разбиваю xml и добавляю к необходимым переменным, как показано ниже
NSString *city_xml=[[NSString alloc] init];
NSString *state_xml=[[NSString alloc] init];
NSString *country_xml=[[NSString alloc] init];
city_xml=[TBXML valueOfAttributeNamed:@"name" forElement:city];
state_xml=[TBXML valueOfAttributeNamed:@"state_name" forElement:city];
country_xml=[TBXML valueOfAttributeNamed:@"country_name" forElement:city];
NSLog(@"%@ %@ %@",city_xml,state_xml,country_xml);
//release the strings after using them
Когда xml возвращает пустую строку, указанное исключение возникает.
Каков обычно используемый способ обработки этого исключения?
Я использую следующее, чтобы обойти проблему ...
if ([TBXML valueOfAttributeNamed:@"name" forElement:city]!=nil) {
city_xml=[TBXML valueOfAttributeNamed:@"name" forElement:city];
} else {
city_xml=@"";
}
if ([TBXML valueOfAttributeNamed:@"state_name" forElement:city]!=nil) {
state_xml=[TBXML valueOfAttributeNamed:@"state_name" forElement:city];
} else {
state_xml=@"";
}
if ([TBXML valueOfAttributeNamed:@"country_name" forElement:city]!=nil) {
country_xml=[TBXML valueOfAttributeNamed:@"country_name" forElement:city];
} else {
country_xml=@"";
}
Но есть ли правильный способ справиться с этим?
Спасибо