Ada*_*ami 0 iphone objective-c xcode4.5
我有一个返回值的方法,我想从我的MainviewController.m调用.另外,我必须在调用它时将值(float)传递给方法.但我遇到了麻烦,我尝试调试并在方法中添加一些断点和NSLog,但似乎没有调用该方法,因为调试器不会在断点处停止并且不会打印NSLog .(最终打印(calculatorScreen.text ...)只打印(null))
MainViewController.m
currentNumber = currentNumber *10 + (float)[sender tag];
NSNumber *convertedNumber = [[NSNumber alloc] init];
NSString *nf = [convertedNumber customFormatNumber:currentNumber];
calculatorScreen.text = [NSString stringWithFormat:@"%@",nf]; // it's printing (null) :(
Run Code Online (Sandbox Code Playgroud)
的NSNumber + FormatNumber.h
@interface NSNumber (FormatNumber)
-(NSString *) customFormatNumber:(float)n1;
Run Code Online (Sandbox Code Playgroud)
的NSNumber + FormatNumber.m
-(NSString *) customFormatNumber:(float)n1
{
NSLog(@" %f" ,n1); // for debug and a breakpoint here
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:2];
[formatter setMinimumFractionDigits:0];
NSString *nf = [formatter stringFromNumber:[NSNumber numberWithFloat:n1]];
NSLog(@"Class %@" ,nf); // for debug
return nf;
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
[[NSNumber alloc]init] 返回nil,因为您没有指定数字值,并且忽略了nil目标操作.
让我告诉你,你正在遵循一个漫长而不必要的方式,我会这样写:
NSNumberFormatter* formatter=[NSNumberFormatter new];
[formatter setMaximumFractionDigits:2];
[formatter setMinimumFractionDigits:0];
formatter.numberStyle= NSNumberFormatterDecimalStyle;
calculatorScreen.text= [formatter stringFromNumber: @(currentNumber*10.0+[sender tag]) ];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |