Vai al contenuto

UIPickerView


Messaggi raccomandati

Con questa riga di codice 

NSLog([self.repeatAutomaticallyPickerData objectAtIndex:row]);

all'interno di pickerView:didSelectRow: ci si ritrova scritto nel debugger il corrispondente della "ruota" del Picker View. Se io volessi, invece che la descrizione, un id cosa dovrei scrivere invece di objectAtIndex?

Link al commento
Condividi su altri siti

Con questa riga di codice 

NSLog([self.repeatAutomaticallyPickerData objectAtIndex:row]);

all'interno di pickerView:didSelectRow: ci si ritrova scritto nel debugger il corrispondente della "ruota" del Picker View. Se io volessi, invece che la descrizione, un id cosa dovrei scrivere invece di objectAtIndex?

 

 

Dovresti essere più preciso nella descrizione del contesto del tuo problema.

Se fai riferimento nel tuo codice a delle variabili del tuo controller, vedi quel "repeatAutomaticallyPickerData" senza spiegare cosa sono, noi facciamo fatica a darti una risposta.

 

Visto il metodo objectAtIndex immagino sia un array (anche se potrebbe essere altro, per esempio un tipo definito da te), ma non posso sapere un array di che tipo di oggetti.

Altro dubbio. Cosa intendi per ID?

 

Ti chiederei quindi di riformulare la domanda inserendo qualche dettaglio in più e specificando precisamente quello che vuoi fare in quel contesto.

Link al commento
Condividi su altri siti

Dovresti essere più preciso nella descrizione del contesto del tuo problema.

Se fai riferimento nel tuo codice a delle variabili del tuo controller, vedi quel "repeatAutomaticallyPickerData" senza spiegare cosa sono, noi facciamo fatica a darti una risposta.

 

Visto il metodo objectAtIndex immagino sia un array (anche se potrebbe essere altro, per esempio un tipo definito da te), ma non posso sapere un array di che tipo di oggetti.

Altro dubbio. Cosa intendi per ID?

 

Ti chiederei quindi di riformulare la domanda inserendo qualche dettaglio in più e specificando precisamente quello che vuoi fare in quel contesto.

...scusa, hai ragione: "repeatAutomaticallyPickerData" è un NSArray; per id comunque intendo una numero: 0 per il primo object del PickerView, 1 per il secondo, ecc. Per avere quindi l'id (il numero) cosa devo scrivere, al posto che "objectAtIndex"?

Link al commento
Condividi su altri siti

...scusa, hai ragione: "repeatAutomaticallyPickerData" è un NSArray; per id comunque intendo una numero: 0 per il primo object del PickerView, 1 per il secondo, ecc. Per avere quindi l'id (il numero) cosa devo scrivere, al posto che "objectAtIndex"?

 

Se devi semplicemente ottenere l'indice dell'oggetto selezionato, ti viene già dato come argomento del metodo pickerView:didSelectRow: .

È per l'appunto l'argomento row.

Link al commento
Condividi su altri siti

Se devi semplicemente ottenere l'indice dell'oggetto selezionato, ti viene già dato come argomento del metodo pickerView:didSelectRow: .

È per l'appunto l'argomento row.

 

...non ci ho nemmeno pensato: comunque, la variabile in cui vorrei mettere il numero di riga di che tipo deve essere?

Link al commento
Condividi su altri siti

...non ci ho nemmeno pensato: comunque, la variabile in cui vorrei mettere il numero di riga di che tipo deve essere?

 

Il valore della riga è un intero... Te lo dice il metodo stesso se leggi la sua firma. 

 

Mapa, senza offesa davvero. Ma sicuro di esserti studiato le basi della programmazione prima di buttarti sulla programmazione iOS?

Se arrivi a programmare per iOS, cosa che richiede il conoscere almeno in parte il framework che ci sta dietro, non puoi permetterti di non sapere le basi del linguaggio usato (e della programmazione in generale).

Link al commento
Condividi su altri siti

Il valore della riga è un intero... Te lo dice il metodo stesso se leggi la sua firma. 

 

Mapa, senza offesa davvero. Ma sicuro di esserti studiato le basi della programmazione prima di buttarti sulla programmazione iOS?

Se arrivi a programmare per iOS, cosa che richiede il conoscere almeno in parte il framework che ci sta dietro, non puoi permetterti di non sapere le basi del linguaggio usato (e della programmazione in generale).

Ho studiato si un po' la programmazione (sia iOS sia generale) ma essendo tanto tempo che non programmo nulla sono un po' arrugginito su alcune cose...basti vedere un altro post sul forum in cui dicevo che c'era un errore misterioso e poi mi dava errore perché avevo scritto male una funzione...

 

Ps ah, ho fatto...solo una cosa (ancora): quando seleziono la riga corrispondente a 0 (la prima) mi restituisce, invece che '0', '<nil>'...

Link al commento
Condividi su altri siti

Ho studiato si un po' la programmazione (sia iOS sia generale) ma essendo tanto tempo che non programmo nulla sono un po' arrugginito su alcune cose...basti vedere un altro post sul forum in cui dicevo che c'era un errore misterioso e poi mi dava errore perché avevo scritto male una funzione...

 

Ps ah, ho fatto...solo una cosa (ancora): quando seleziono la riga corrispondente a 0 (la prima) mi restituisce, invece che '0', '<nil>'...

 

Prova a postare il codice. 

Link al commento
Condividi su altri siti

Prova a postare il codice. 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
	switch (pickerView.tag) {
		case 0:
			self.VHSData = [self.VHSPickerData objectAtIndex:row];
			self.VHSIntData = row;
			break;
		case 1:
			self.channelData = [self.channelPickerData objectAtIndex:row];
			self.channelIntData = row;
			break;
		case 2:
			self.repeatAutomaticallyData = [self.repeatAutomaticallyPickerData objectAtIndex:row];
			self.repeatAutomaticallyIntData = row;
			break;
		default:
			break;
	}
}

VHSIntData, channelIntData e repeatAutomaticallyIntData sono variabili di tipo NSInteger...

...per ora ho risolto così:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
	switch (pickerView.tag) {
		case 0:
			self.VHSData = [self.VHSPickerData objectAtIndex:row];
			if (row == 0) {
				row = -1;
			}
			self.VHSIntData = row;
			break;
		case 1:
			self.channelData = [self.channelPickerData objectAtIndex:row];
			if (row == 0) {
				row = - 1;
			}
			self.channelIntData = row;
			break;
		case 2:
			self.repeatAutomaticallyData = [self.repeatAutomaticallyPickerData objectAtIndex:row];
			if (row == 0) {
				row = -1;
			}
			self.repeatAutomaticallyIntData = row;
			break;
		default:
			break;
	}
}

...aggiungendo degli if...
Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...