Conversión int to UITextField, me está volviendo loco!!!!!!!

Para dar las gracias debes entrar o registrarte en el foro

iMiembro
iMiembro
Mensajes: 15 Agradecido: 2
05 Ene 2011, 19:24# 1

Buenas tardes a todos, estoy haciendo una pequeña aplicación para trastear un poco como el MVC y es una simple aplicación que tiene 3 UITextField, meto dos valores y quiero que se calcule la suma de los dos por ejemplo y me lo muestre en el tercer UITextField. Y no hay manera no hace más que darme error y estoy probando de todo..... A ver si alguien me puede enseñar un ejemplillo porque llevo todo el día y no hay manera...... Tengo los valores para sumar, lo sumo dentro de método de mi modelo que me devuelve un entero, pero mi problema es cuando trato de pasar ese entero al 3º UITextField para que lo muestre, pruebe lo que pruebe me da error......

He probado de la siguiente forma:

int aV1;
int aV2;
int aVR;

UITextField *prueba = [[UITextField alloc] init];

//Primer Valor
aV1 = [valor1.text intValue];

//Segundo Valor
aV2 = [valor1.text intValue];

//Calcular el resultado
aVR = [miModelo Suma:aV1 y:aV2];

Una forma
NSString *h1 = [NSString stringWithFormat:@"%i", aVR];

Otra forma
NSString *h1 = [NSString stringWithFormat:@"%i", aVR];

Otra
[prueba setText:[NSString stringWithFormat:@"%d", aVR]];

Otra

resultado.text = [NSString stringWithFormat:@"%d", aVR];


(Adjunto mi código por si acaso)

************* .h del controlador **************

#import

#import "Modelo.h"

@interface PruebaMVCViewController : UIViewController {

Modelo *miModelo;

IBOutlet UITextField *valor1;
IBOutlet UITextField *valor2;
IBOutlet UITextField *resultado;

}

- (IBAction) muestraResultado:(id)sender;

@property (nonatomic, retain) IBOutlet UITextField *valor1;
@property (nonatomic, retain) IBOutlet UITextField *valor2;
@property (nonatomic, retain) IBOutlet UITextField *resultado;


@end

******************* .m del controlador ****************

##import "PruebaMVCViewController.h"
#import "Modelo.h"

@implementation PruebaMVCViewController

@synthesize valor1, valor2, resultado;

-(IBAction) muestraResultado:(id)sender{

int aV1;
int aV2;
int aVR;

UITextField *prueba = [[UITextField alloc] init];

//Primer Valor
aV1 = [valor1.text intValue];

//Segundo Valor
aV2 = [valor1.text intValue];

//Calcular el resultado
aVR = [miModelo Suma:aV1 y:aV2];

//double calc = 10;
//NSString *h1 = [NSString stringWithFormat:@"%f", calc];

//NSString *h1 = [NSString stringWithFormat:@"%i", aVR];
//[prueba setText:[NSString stringWithFormat:@"%d", aVR]];

//resultado.text = [NSString stringWithFormat:@"%d", aVR];
resultado.text = @"Hola";


NSString *newWeight = valor1.text;
NSString *newSize = valor2.text;

double newWeightDouble = newWeight.doubleValue;
double newSizeDouble = newSize.doubleValue;
double calc = newWeightDouble /= newSizeDouble;

NSNumber *calcNum = [[NSNumber alloc] initWithDouble:calc];
NSString *calcText = calcNum.stringValue;

resultado.text = calcText;

//resultado.text = [NSString stringWithFormat:"%d", aVR];
//resultado.text = @"Funciona de una vez";

//printf("fin");

}


/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
}
return self;
}
*/


// Implement loadView to create a view hierarchy programmatically, without using a nib.
/*- (void)loadView {



}*/




// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];

miModelo = [[Modelo alloc] init];


}



// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
[super dealloc];
[miModelo dealloc];
}

@end

**************** Modelo .h ******************
#import


@interface Modelo : NSObject {

int numero1;
int numero2;
int result;

}

- (int) Suma: (int)valor1 y: (int)valor2;
- (int) Resta: (int)valor1 y: (int)valor2;
- (int) Divide: (int)valor1 y: (int)valor2;
- (int) Multiplica: (int)valor1 y: (int)valor2;

@end

****************** Modelo.m ******************
#import "Modelo.h"


@implementation Modelo


- (int) Suma: (int)valor1 y: (int)valor2{

numero1 = valor1;
numero2 = valor2;

result = valor1 + valor2;
return result;

}

- (int) Resta: (int)valor1 y: (int)valor2{

numero1 = valor1;
numero2 = valor2;

result = valor1 + valor2;
return result;

}

- (int) Divide: (int)valor1 y: (int)valor2{

numero1 = valor1;
numero2 = valor2;

result = valor1 / valor2;
return result;

}

- (int) Multiplica: (int)valor1 y: (int)valor2{

numero1 = valor1;
numero2 = valor2;

result = valor1 * valor2;
return result;

}


@end

Gracias  
Etiquetado en:
iMiembro
iMiembro
Mensajes: 15 Agradecido: 2
05 Ene 2011, 19:43# 2

Me respondo yo mismo....... al final después de mucho buscar y encontrar algo parecido ya lo he logrado de la siguiente forma:


NSString *newWeight = valor1.text;
NSString *newSize = valor2.text;

int newWeightDouble = newWeight.intValue;
int newSizeDouble = newSize.intValue;
int calc = [miModelo Suma:newWeightDouble y:newSizeDouble];

NSNumber *calcNum = [[NSNumber alloc] initWithInt:calc];
NSString *calcText = calcNum.stringValue;

resultado.text = calcText;

Ahora ya me muestra el valor en el 3º UITextField y ya no me da el error, pero sinceramente me parece muy complicado la conversión de datos en Objective-C.... supongo que será que estoy acostumbrado al .NET y al ABAP (SAP)..... Si alguien tiene alguna otra solución por favor que la escriba para aprendamos los demás.... Muchas gracias por leer este post y un saludo a todo el mundo....

Gracias  