Friday, 9 August 2013

value get released from variable when value is float number

value get released from variable when value is float number

I am facing such strange issue right now, I am trying to implement
calculator in my project the demo. The place I want to implement is ARC
enable and my project ARC disable everything is working perfectly in that
demo its working perfect in my project tOO but when i try to do operation
on float values then my application crashes says EXC_BAD_ACCESS(code 1....
below is my code
_currentValue and _previousValue are like this in .h file
@property (retain,nonatomic) NSNumber* currentValue;
@property (retain,nonatomic) NSNumber* previousValue;
in my .m file there are 2 methods where i face problem
- (NSString *)calculateValueToString:(NSString *)valueString ForType:(enum
State)type{
_currentValue = [numberFormatterFormal numberFromString:valueString];
NSLog(@"%@",_currentValue); //whatever number i input it get prints here
[self calculateValue]; // this method get called
state = type;
if (state != Equal){
_previousValue = _currentValue;
NSLog(@"%@",_previousValue); // get print
_currentValue = @0 ;
}
NSLog(@"_previousValue%@",_previousValue); // get print
NSLog(@"_currentValue%@",_currentValue); // get print
return [numberFormatterFormal stringFromNumber:_currentValue];
}
- (void)calculateValue{
switch (state) {
case Plus:
_currentValue = [NSNumber numberWithDouble:[_previousValue
doubleValue] + [_currentValue doubleValue]];
break;
case Minus: //GET ONLY EXECUTE ONLY IF
OPERATION IS -
NSLog(@"%@",_currentValue); // it has value
--->>>>>>> HERE APP CRASH NSLog(@"%@",_previousValue); // app
crashes here
_currentValue = [NSNumber numberWithDouble:[_previousValue
doubleValue] - [_currentValue doubleValue]];
NSLog(@"%@",_currentValue);
// THIS ALL WORK PERFECTLY IN THAT DEMO WHICH IS ARC ENABLE
break;
case Multiple:
_currentValue = [NSNumber numberWithDouble:[_previousValue
doubleValue] * [_currentValue doubleValue]];
break;
case Divide:
_currentValue = [NSNumber numberWithDouble:[_previousValue
doubleValue] / [_currentValue doubleValue]];
break;
default:
break;
}
}

No comments:

Post a Comment