Я знаю, что это был дан ответ, но это меня беспокоит, так вот мое решение;
Вот метод:
- (NSString *)shortenedAddress:(NSString *)address {
// Turn the string into an array of each part separated by a comma
NSArray *components = [address componentsSeparatedByString:@","];
// No need to shorten the address if there are three items or less
if ([components count] < 4) {
return address;
}
// Create a range object for the first three items in the array
NSRange range;
range.location = 0;
range.length = 3;
return [[components subarrayWithRange:range] componentsJoinedByString:@","];
}
И если вы проверить его с этим:
NSString *fullAddress = @"current address is Narveer Tanaji Malusare Road, Dandekar Pool, Dattavadi, Pune, Maharashtra 411030, India"; // More than three items
NSString *partialAddress = @"current address is Narveer Tanaji Malusare Road, Dandekar Pool"; // Less than three items
NSLog(@"Full Address: %@", [self shortenedAddress:fullAddress]);
NSLog(@"Partial Address: %@", [self shortenedAddress:partialAddress]);
дает следующий вывод в консоли:
Full Address: current address is Narveer Tanaji Malusare Road, Dandekar Pool, Dattavadi
Partial Address: current address is Narveer Tanaji Malusare Road, Dandekar Pool
Я думаю, что это короче, легче понять и легче изменить, чем принятый ответ, но это только мое мнение.
Что вы попробовали? Всегда ли будут запятые? – Wain
Да, потому что адрес исходит от google api. – user968597
'NSRegularExpression' может быть способом. 'componentsSeparatedByString', с реконструкцией после этого может быть другим способом. Что вы пробовали? – Larme