2011-08-11 16 views
5

Ktoś wie, jak wypełnić, na przykład listę kategorii, z usługi internetowej do UIPickerView? Czy jest również możliwe umieszczenie ukrytej wartości?Jak wprowadzać dane z usługi sieciowej do UIPickerView? [Rozwój aplikacji na iOS]

Przykład,
„publiczny” z ukrytym id „1”
„członek” z ukrytym id „2” i tak dalej ..

tych 2 wartości mają być od usługa. Korzystam z framework ASIHTTPRequest przy okazji.

jestem nowicjuszem w iOS/XCode/Objective C. Nadzieja ktoś jest w stanie pomóc): Dziękuję

=============== Response === =============

@MSgambel
Dobra, postaram się wszystko wyjaśnić. Jak na razie, jak wkładamy elementy do UIPickerView to:

[NSArray arrayWithObjects: @ "John Appleseed", @ "Chris Armstrong", @ "Serena Auroux", @ "Susan Bean", @ "Luis Becerra", @ "Kate Bell", @ "Alain Briere", nil];

zamiast powyższych elementów, jak zapełnić elementy z usługi sieciowej w selektorze?

@Akshay
Chodziło mi o to, że ukryty zbieracz będzie mieć 2 wartości, ale tylko etykieta „publiczny” jest widoczna na próbniku, a nie identyfikator „1”. Chciałbym zaimplementować go nieco podobnie do menu rozwijanego na stronach internetowych.

w bazie danych o nazwie "Domain" mamy wartości w następującym formacie:
DomainID: DomainName
1: Publiczny
2: Companyâ
3: CompanyB
Będzie kolejna baza danych "Użytkownicy", gdzie jest powiązany z identyfikatorem domeny. (Tylko przykład)


Wybieracz pokaże "Publiczny" w interfejsie, gdy użytkownik go wybierze, będzie miał wartość "1". Czy jest coś, co mogłem zrobić?

+0

Jeśli wyjaśnisz, co chcesz lepiej, łatwiej nam będzie pomóc! – msgambel

+0

Co masz na myśli przez ukrytą wartość/identyfikator? – Akshay

+0

Przesłałem moje pytanie. Nie jestem zbyt dobry w wyjaśnianiu szczerze, ponieważ nie mam wystarczającego doświadczenia z żargonami technicznymi i innymi rzeczami. Dziękuję za uwagę. – daney

Odpowiedz

1

Przede wszystkim nie podano wiele szczegółów na temat szczegółów usługi internetowej. Zakładając, że jest to SOAP, bardzo polecam sudzc lub wsd2lobjc. Będą generować kod, aby całkiem dobrze przekonwertować defekt WSDL na klasy Celu C.

Co do pytania o "ukryte" wartości UIPickerView, to jest całkiem proste. Utwórz NSArray z .Korzystanie z przykładu (zakładając, wszystkie są ciągi):

NSDictionary *dictOne = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"realValue",@"Public",@"looksGoodValue",nil]; NSDictionary *dictTwo = [NSDictionary dictionaryWithObjectsAndKeys:@"2",@"realValue",@"CompanyA",@"looksGoodValue",nil]; NSDictionary *dictTre = [NSDictionary dictionaryWithObjectsAndKeys:@"3",@"realValue",@"CompanyB",@"looksGoodValue",nil];

array = [NSArray arrayWithObjects:dict1,dict2,dict3,nil];

i w swoim sposobie UIPickerViewDelegate

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

return [[self.array objectAtIndex:row] objectForKey:@"looksGoodValue"];

}

i wreszcie w cokolwiek użyć pickerview dla (powiedzmy usługa internetowa)

request.realValue = [[self.array objectAtIndex:[pickerView selectedRowInComponent:0]] valueForKey:@"realValue"];

Mam nadzieję, że to pomaga!

+0

Dzięki Justin, spróbuję tego! – daney

+0

@tacos_tacos_tacos to działa Dzięki – nivritgupta

0

Zapisałbym te wartości w liście właściwości, po załadowaniu ich za pomocą ASIHTTPRequest. Aby zapisać pliki, należy użyć `NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);

NSString * documentsDirectory = [paths objectAtIndex: 0];

NSString * ścieżka = [documentsDirectory stringByAppendingPathComponent: @ "data.plist"];

NSMutableArray * array = [[NSMutableArray alloc] init]; [array addObject: [NSArray arrayWithObjects: [NSString stringWithFormat: @ "% @", stringOne], // dodaj wszystkie łańcuchy takie jak zero]]; [tablica writeToFile: ścieżka atomicznie: TAK]; `

Następnie użyj [NSMutableArray alloc] initWithContentsOfFile:path], aby załadować swoje wartości do pickerView.

+0

Dzięki Maxner może to być przydatne (: – daney

Powiązane problemy