2013-10-07 4 views
0

В моем приложении IOS я хочу, чтобы разделить слова из Google API близости, результат апи показывает, как следует,Как отделить элементы от Google api api?

"vicinity" : "24/49,TV Swamy Road East,, TV Swamy Street, RS Puram, Coimbatore" 
"vicinity" : "48, T.V. Swamy Road West, T.V. Swamy Road (West), Near Tasmac, R.S. Puram, Coimbatore" 
"vicinity" : "Diwan Bhadur Road, RS Puram, Coimbatore" 
"vicinity" : "Avinashi Road, P.S.G. College Stop, Avinashi Road, Near P.S.G. Optical Centre, Peelamedu, Coimbatore" 

Вот код, который я пытаюсь использовать для обрезки

__block NSString *lastWord = nil; 

[str enumerateSubstringsInRange:NSMakeRange(0, [str length]) options:NSStringEnumerationByWords | NSStringEnumerationReverse usingBlock:^(NSString *substring, NSRange subrange, NSRange enclosingRange, BOOL *stop) { 
    lastWord = substring; 
    *stop = YES; 
}]; 

Но результаты таковы

Coimbatore 
Coimbatore 
Coimbatore 
Coimbatore 

Я хочу показать только обрезанные детали, как следует из приведенного выше результата

"TV Swamy Street, RS Puram, Coimbatore" 
"R.S. Puram, Coimbatore" 
"RS Puram, Coimbatore" 
"Peelamedu, Coimbatore" 

Как урезать детали, как указано выше?

+0

Какова ваша логика, чтобы скопировать строку окрестности? Если вам нужны только последние два компонента, это довольно просто. – Anupdas

ответ

0

Не совсем понятно, какова ваша логика для обрезки строк. Если вы хотите только последние два компонента, вы можете сделать это таким образом

NSArray *results = @[@{@"vicinity" : @"24/49,TV Swamy Road East,, TV Swamy Street, RS Puram, Coimbatore"}, 
    @{@"vicinity" : @"48, T.V. Swamy Road West, T.V. Swamy Road (West), Near Tasmac, R.S. Puram, Coimbatore"}, 
    @{@"vicinity" : @"Diwan Bhadur Road, RS Puram, Coimbatore"}, 
    @{@"vicinity" : @"Avinashi Road, P.S.G. College Stop, Avinashi Road, Near P.S.G. Optical Centre, Peelamedu, Coimbatore"}]; 

    NSMutableArray *formattedResults = [NSMutableArray array]; 
    for (NSDictionary *dict in results) { 
     NSString *vicinity = dict[@"vicinity"]; 

     NSArray *components = [vicinity componentsSeparatedByString:@","]; 
     NSUInteger length = 2; 
     if ([components count]<length) { 
      break; 
     } 
     NSRange range = NSMakeRange([components count]-length, length); 
     NSArray *croppedComponents = [components subarrayWithRange:range]; 

     NSString *croppedVicinity = [croppedComponents componentsJoinedByString:@","]; 

     if (croppedVicinity) { 
      [formattedResults addObject:croppedVicinity]; 
     } 
    } 

    NSLog(@"%@",formattedResults); 
Смежные вопросы