Извлечь NSString используя NSScanner - PullRequest
0 голосов
/ 06 апреля 2011

Я получаю данные от AllContacts;в этих данных я получаю контактные данные, такие как (998) 989-8989.Используя этот номер, я не могу позвонить.Может ли кто-нибудь помочь с этим?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Привет всем

Наконец-то я воспользовался этим кодом для решения этой проблемы

NSString *originalString = @"(998) 989-8989";
NSMutableString *strippedString = [NSMutableString 
                                   stringWithCapacity:originalString.length];

NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet 
                           characterSetWithCharactersInString:@"0123456789"];

while ([scanner isAtEnd] == NO) {
    NSString *buffer;
    if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
        [strippedString appendString:buffer];

    } else {
        [scanner setScanLocation:([scanner scanLocation] + 1)];
    }
}

NSLog(@"%@", strippedString);

Спасибо всем

0 голосов
/ 06 апреля 2011

Звучит так, как будто вы можете просто удалить пробелы, скобки и переносы.

NSString *phoneNumber = @"(998) 989-8989";
phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"-" withString:@""];
phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"(" withString:@""];
phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@")" withString:@""];
phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@" " withString:@""];
phoneNumber = [@"tel://" stringByAppendingString:phoneNumber];
[[UIApplication sharedApplication] openURL:phoneNumber];
...