iPhone RangeOfString - PullRequest
       2

iPhone RangeOfString

0 голосов
/ 25 марта 2011

Здравствуйте, у меня есть строка, подобная этой:

Results for: 123D12 
2010

2009

2008

2007

2006

YEAR: 2006 WEEK: 2 PRODIDNUM: 37911
 ACCESSKEY: FA3540B52F

2005

2004

YEAR: 2004 WEEK: 22 PRODIDNUM: 46178
 ACCESSKEY: 58B2509373

, и я хочу указать ACCESSKEY, чтобы помочь мне получить шестнадцатеричное (в данном случае это FA3540B52F и 58B2509373).проблема в том, что когда я использую rangeOfString, чтобы получить ключ доступа, он останавливается только на первом!Это мой код:

if ([strippedString rangeOfString:@"ACCESSKEY"].location != NSNotFound ) {
    NSUInteger int1=[strippedString rangeOfString:@"ACCESSKEY"].location;

    NSString *finssid = [strippedString substringWithRange:NSMakeRange(int1+11,10)];
    NSLog(@"Output = Found it %d \n",int1);

    NSLog(@"Output =%@ \n \n",finssid);    
}

Что я здесь не так делаю?

Ответы [ 2 ]

3 голосов
/ 25 марта 2011

Попробуйте это:

NSRange searchRange = NSMakeRange(0, [strippedString length]);
BOOL keepGoing = YES;

// Find all ssid
while (keepGoing) {
    NSRange accessWord = [strippedString rangeOfString:@"ACCESSKEY" options:NSCaseInsensitiveSearch range:searchRange];
    if (accessWord.location != NSNotFound) {
        // since we have found the access key, we can assume somethings
        // ACCESSKEY: FA3540B52F
        int pos = accessWord.location + 11;
        NSString *ssid = [strippedString substringWithRange:NSMakeRange(pos, pos + 10)];

        NSLog(@"SSID: %@", ssid);

        // reset our search up a little for our next loop around
        searchRange = NSMakeRange(pos, [strippedString length] - pos);
    } else {
        keepGoing = NO;
    }
}

`

1 голос
/ 25 марта 2011

Используйте rangeOfString:options:range: вместо rangeOfString:. Сохраните индекс, в котором вы нашли совпадение, а затем используйте аргумент range:, начинающийся с индекса после этого. Таким образом, вы проходите цикл, и предыдущие матчи выходят за пределы диапазона, в котором вы смотрите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...