Search code examples
iosipadnsnumber

NSNumber is woking in Simulator not working in iPad


I'm converting a text to NSNumber and it working fine in the iPad simulator while it is running (null) in the real iPad device. Please where would be my issue?

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];

[f setNumberStyle:NSNumberFormatterDecimalStyle];

NSNumber * myNumber1 = [f numberFromString:[self txtValue1].text];
NSNumber * myNumber2 = [f numberFromString:[dic objectForKey:from?@"in":@"out"]];

float result1 = [myNumber1 floatValue];
float result2 = [myNumber2 floatValue];

NSLog(@"Check the value2 %@ ",myNumber1); //Result (null)
NSLog(@"Check the value3 %f ", result1); //Result "0"

NSLog(@"string1: %@", [self txtValue1].text); //result in iPad device: 1.35
NSLog(@"string2: %@", [dic objectForKey:from?@"in":@"out"]) //result in iPad device: 1.2

NSLog(@"string1: %@", [self txtValue1].text); //result in iPad Simulator: 1.35
NSLog(@"string2: %@", [dic objectForKey:from?@"in":@"out"]) //result in iPad Simulator: 1.2

Solution

  • After I've changed my code type for the NSNumber as @-notation type rather then NSNumberFormatter as mentioned in this topic NSNumber @-notation finally it is started to show the value in the iPad device.

    NSNumber * myNumber1 = @([[self txtValue1].text floatValue]);
    NSNumber * myNumber2 = @([[dic objectForKey:from?@"in":@"out"] floatValue]);
    
    float result1 = [myNumber1 floatValue];
    float result2 = [myNumber2 floatValue];
    
    NSLog(@"Check the value2 %@ ",myNumber1); //Result 1.35 which it should be
    NSLog(@"Check the value3 %f ", result1); //Result 1.2 which it should be