1

在我的应用程序中,我尝试根据用户区域设置格式化电话号码。我面临的问题是:Iphone基于电话号码格式的区域设置

代码在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 

代码在PhoneNumber.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方法。我尝试了所有的排列组合,但我没有发现错误。此外,如果任何人有Iphone基于地区的电话号码格式信息,请分享。

回答

1

首先,iOS不支持电话号码格式。开发人员必须编写自己的插件。还要提一下你在方法中传递的typeN变量。同时检查一个数字是否不为空。我很确定你在这个方法中传递的数字是null的原因。

+0

谢谢@caroon我想通了回来的问题。这确实是因为aNumber变量。此外,我尝试获取iOS上的手机格式信息,但无法得到任何,所以不得不写我自己的插件。 – shailbenq 2012-10-22 20:24:59