Iphone NSN编号的自定义格式
在ios应用程序中,我试图允许用户输入一个数字和一种格式,我希望得到一个字符串,该字符串的格式为用户指定的格式: 为此,我尝试了以下方法:Iphone NSN编号的自定义格式,iphone,ios,nsnumberformatter,Iphone,Ios,Nsnumberformatter,在ios应用程序中,我试图允许用户输入一个数字和一种格式,我希望得到一个字符串,该字符串的格式为用户指定的格式: 为此,我尝试了以下方法: - (NSString *)formatNumber:(NSNumber *)number withFormat:(NSString *)format { NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setPositiveFormat:f
- (NSString *)formatNumber:(NSNumber *)number withFormat:(NSString *)format
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setPositiveFormat:format];
NSString *formatedString = [formatter stringFromNumber:number];
return formatedString;
}
但如果我试着这样称呼:
NSNumber *number = [NSNumber numberWithDouble:1234567890];
NSString *string = [self formatNumber:number withFormat:@"###-###-####"];
我希望得到一个结果:123-456-7890
但它不起作用
@“####-#-#-#-#-#-#格式是否语法错误?还是我使用的NSNumberFormatter错误
谢谢你的帮助
PS:我不想硬编码算法来循环字符并插入破折号(-),因为这种格式只是一个示例,因为用户可以自由更改它
谢谢
编辑
对不起,在这里写代码时,我漏了一行。现在添加它这可能很有用:
关键报价:
数字格式中不允许使用括号和破折号
您在方法的何处使用format参数?您似乎没有在该方法的任何位置设置NSNumberFormatter的格式。我看不出它对您发送的“格式”NSString有任何作用。很抱歉,我编辑了我的问题。我在写问题时忘了把它包括在内。