Obj-C如何调用带返回的方法?

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)

我在这里错过了什么?

Ram*_*uri 5

[[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)