У меня есть большой объект NSString, как показано ниже. Я хочу проанализировать эту строку, чтобы получить все значения icmp_seq и времени в ней. Код, который я написал, всегда дает мне последнее значение.
Любая идея, как сделать это лучше, кроме как разбить его на символ новой строки, а затем запустить синтаксический анализатор для каждого разделения.
64 bytes from 74.125.129.105: icmp_seq=0 ttl=43 time=23.274 ms
64 bytes from 74.125.129.105: icmp_seq=1 ttl=43 time=28.704 ms
64 bytes from 74.125.129.105: icmp_seq=2 ttl=43 time=23.519 ms
64 bytes from 74.125.129.105: icmp_seq=3 ttl=43 time=23.548 ms
64 bytes from 74.125.129.105: icmp_seq=4 ttl=43 time=23.517 ms
64 bytes from 74.125.129.105: icmp_seq=5 ttl=43 time=23.293 ms
64 bytes from 74.125.129.105: icmp_seq=6 ttl=43 time=23.464 ms
64 bytes from 74.125.129.105: icmp_seq=7 ttl=43 time=23.323 ms
64 bytes from 74.125.129.105: icmp_seq=8 ttl=43 time=23.451 ms
64 bytes from 74.125.129.105: icmp_seq=9 ttl=43 time=23.560 ms
Код:
-(void)parsePingData:(NSString *)iData {
NSRange anIcmpRange = [iData rangeOfString:@"icmp_seq"];
NSRange aTtlRange =[iData rangeOfString:@"ttl"];
NSRange icmpDataRange = NSMakeRange(anIcmpRange.location + 1, aTtlRange.location - (anIcmpRange.location + 1));
NSLog(@"Output=%@",[iData substringWithRange:icmpDataRange]);
}