在我的应用程序中,我试图根据用户区域设置电话号码的格式。我面临的问题如下:
Viewcontroller.m:中的代码
NSString *contact = [_phone convertContact:myNumber withLocale:typeN];
NSLog(@"Phone number %@ and number = %@",contact,myNumber);
//Console output 2012-07-23 15:40:16.994 InternProj[7585:f803] value of en and 23443235434
电话号码中的代码.m:
- (NSString *) convertContact:(NSNumber *)aNumber withLocale:(NSString *)locale{
NSString *localeString = locale ;
NSLog(@"value of %@ and %@",localeString , aNumber);
NSString *tempStr = [[NSString alloc] initWithString:@""];
NSRange range;
range.length = 3;
range.location = 3;
//Returns the phone number 2032225200 as 1(203)222-5200
if([localeString compare:@"en"] == NSOrderedSame) {
NSLog(@"Inside en");
NSString *areaCode = [[aNumber stringValue] substringToIndex:3];
NSString *phone1 = [[aNumber stringValue] substringWithRange:range];
NSString *phone2 = [[aNumber stringValue] substringFromIndex:6];
tempStr = [NSString stringWithFormat:@"1(%@)%@-%@", areaCode, phone1, phone2];
NSLog(@"Value tempStr = %@",tempStr);
}
else {
tempStr = [[aNumber stringValue] substringToIndex:3];
}
return tempStr;
}
我从convertContact方法得到一个null作为返回值。我尝试了所有的排列,但我不明白为什么会出错。此外,如果有人有基于Iphone区域设置的电话号码格式信息,请分享。
首先,iOS不支持电话号码格式。开发人员必须编写自己的插件。还要提到您在方法中传递的typeN变量是什么。还要检查aNumber是否不为null。我非常确信您在方法中传递的数字是null的原因。