Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 21 di 32
  • livello intermedio
Indice lezioni

Come salvare le informazioni di un modulo

Come salvare le informazioni inserite dall'utente all'interno di un'area di testo
Come salvare le informazioni inserite dall'utente all'interno di un'area di testo
Link copiato negli appunti

A questo punto è necessario salvare i dati che l'utente andrà ad inserire all'interno di un nuovo oggetto che andremo a creare. Seguiamo la stessa procedura vista nelle lezioni precedenti per l'aggiunta di una nuova classe al progetto e questa volta scegliamo, come classe da cui ereditare NSObject. Infine salviamo la nuova classe con il nome Fruit.

Come prima cosa andiamo nel file Fruit.h e dichiariamo gli attributi di classe che rappresenteranno le informazioni inserite dall'utente nel modulo di creazione:

NSString * _name;
NSString * _origin;
NSString * _description;
UIImage * _image;

Una classe che eredita da NSObject possiede il metodo init come costruttore, ma dato che a noi serve un init a cui passare dei parametri ne dichiariamo uno noi nel seguente modo:

- (id)initWithName:(NSString*)name origin:(NSString*)origin description:(NSString*)description image:(UIImage*)image;

Adesso spostiamoci nel file Fruit.m ed inseriamo il seguente codice di implementazione del metodo di init creato:

- (id)initWithName:(NSString *)name origin:(NSString *)origin description:(NSString *)description image:(UIImage *)image{
    self = [super init];
    if (self){
        _name = [[NSString alloc]initWithString:name];
        _origin = [[NSString alloc]initWithString:origin];
        _description = [[NSString alloc]initWithString:description];
        _image = [[UIImage alloc]initWithCGImage:image.CGImage];
    }
    return self;
}

Adesso la nostra classe Fruit è terminata. L'ultima operazione che dobbiamo compiere è la creazione di un oggetto Fruit tutte le volte che l'utente, dopo aver inserito i campi, preme il bottone Inserisci. Spostiamoci dunque nella classe InsertViewController.m e all'interno del metodo addButtonTapped inseriamo il seguente codice:

int index;
for (int i = 0; i < 3; i++) {
	UIButton *  button = [_buttonArray objectAtIndex:i];
	if (button.selected == YES) {
		index = i;
		button.layer.borderWidth = 0.0;
		[button setSelected:NO];
	}
}
UIImage * fruitImage = [_imageButtonArray objectAtIndex:index];
Fruit * fruitObject= [[Fruit alloc]initWithName:_nameTextField.text origin:_originTextField.text description:_descriptionTextView.text image:fruitImage];
_nameTextField.text = @"";
_originTextField.text = @"";
_descriptionTextView.text = @"";

All'interno del ciclo for cerchiamo l'indice del bottone, contenente l'immagine del frutto, che avevamo selezionato e ricaviamo l'immagine associata. A questo punto creiamo l'oggetto Fruit utilizzando il metodo di init precedentemente creato e resettiamo i campi di testo.

Con queste linee di codice abbiamo creato un oggetto Fruit e nelle prossime lezioni vedremo come passare tale oggetto alla classe ListViewController.

Ti consigliamo anche