TextView с несколькими результатами
У меня есть что-то подобное:
for(MKMapItem *mapItem in response.mapItems){
MKPlacemark *placeMark = mapItem.placemark;
NSLog(@"showSearchResponse: mapItem = %@ coordinate = %g,%g \nname = %@\naddressDictionary = %@",
mapItem,
placeMark.coordinate.latitude,
placeMark.coordinate.longitude,
mapItem.name,
placeMark.addressDictionary);
[self.mapView addAnnotation:placeMark];
scrollText.editable=NO;
scrollText.scrollEnabled = YES;
scrollText.text = [NSString stringWithFormat:@"%@",placeMark.addressDictionary];
я хочу перечислить все результаты в TextView, этот код показал мне только последний результат
Спасибо за помощь!
2 ответа
Решение
Проблема в конце вашего цикла:
scrollText.text = [NSString stringWithFormat:@"%@",placeMark.addressDictionary];
Вы сбрасываете текст до последней записи.
Итак, у вас есть два варианта. Один из них - просто объединить строку с вашими результатами и установить ее в качестве текста для scrollText или объединить строку с scrolText следующим образом.
scrollText.text = [NSString stringWithFormat:@"%@%@",scrollText.text, placeMark.addressDictionary];
Вы переустанавливаете значение scrollText каждый раз. Итак, попробуйте это:
NSMutableString *resultString = [[NSMutableString alloc]init];
for(MKMapItem *mapItem in response.mapItems){
MKPlacemark *placeMark = mapItem.placemark;
NSLog(@"showSearchResponse: mapItem = %@ coordinate = %g,%g \nname = %@\naddressDictionary = %@",
mapItem,
placeMark.coordinate.latitude,
placeMark.coordinate.longitude,
mapItem.name,
placeMark.addressDictionary);
[self.mapView addAnnotation:placeMark];
[resultString appendFormate:@"%@\n",placeMark.addressDictionary];
}
scrollText.editable=NO;
scrollText.scrollEnabled = YES;
scrollText.text = resultString;
Я надеюсь, что это будет полезно.