这是我第一次做的iOS应用的尝试。
我使用人员选取索要了电话号码的用户,但是当它与下面的代码检索,我NSString *phone
apears喜欢(0)111192222-2222。 我来自巴西,在这里为手机号码正确的面具(01111)92222-2222(9是可选的,一些数字有别人不一样)。 如何解决这个面具? 或完全删除吗?
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
ABMultiValueRef multiValue = ABRecordCopyValue(person, property);
CFIndex index = ABMultiValueGetIndexForIdentifier(multiValue, identifier);
NSString *phone = (__bridge NSString *)ABMultiValueCopyValueAtIndex(multiValue, index);
return NO;
}
看到这个答案: https://stackoverflow.com/a/6323208/60488
基本上:
NSString *cleanedString = [[phoneNumber componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];
对于你的情况,你可能想要删除字符“ - ”,“(”和“)”从字符集。
您可以使用NSString和作为的NSMutableString的几个方法:
NSString *phone=@"(0) 111192222-2222";
//I'm from Brazil and here the correct mask for mobile phone numbers is (01111) 92222-2222
NSMutableString *editPhone=[NSMutableString stringWithString:[phone stringByReplacingOccurrencesOfString:@")" withString:@""]];
editPhone=[NSMutableString stringWithString:[editPhone stringByReplacingOccurrencesOfString:@" " withString:@""]];
[editPhone insertString:@") " atIndex:6];
NSLog(@"%@",editPhone);//(01111) 92222-2222
我会用正则表达式来验证电话号码,而不是杀死自己做一个自定义的键盘,它的功能可以通过iOS的更新而改变。 因此,让所有的字符和验证里面的代码。