См. мой ответ на другой вопрос , где приведен пример кода для обработки случаев с неверным вводом.
В основном вы делаете это:
NSString *cleanedString = [[phoneNumber componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];
NSString *escapedPhoneNumber = [cleanedString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *telURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@", escapedPhoneNumber]];
Обновить: Я заметил, что созданная вами строка имеет некоторое имя ("phoneNumber") в качестве текстового поля, из которого вы пытаетесь получить текст.Вы можете переименовать любой из этих двух.