如何将数据从Web服务填充到UIPickerView?[iOS应用开发]

dan*_*ney 5 iphone xcode web-services objective-c uipickerview

任何人都知道如何填充,例如从Web服务到UIPickerView的类别列表?此外,是否可以存入隐藏价值?

示例,
隐藏ID为"1"的"Public",隐藏ID为"2"的
"Member"等等.

这两个值来自Web服务.顺便说一句,我正在使用ASIHTTPRequest框架.

我是iOS/XCode/Objective C的新手.希望有人能帮忙):谢谢

===============回复================

@MSgambel
好吧,尽我所能解释.至于现在,我们如何将项目放入UIPickerView:

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

而不是上面的那些项目,如何将项目从Web服务填充到选择器?

@Akshay
隐藏的意思是选择器有2个值,但只有标签"Public"在选择器上可见而不是id"1".我想实现它有点类似于网站上的下拉菜单.

在名为"Domain"的数据库中,我们使用以下格式的值:
DomainID:DomainName
1:Public
2:CompanyA
3: CompanyB
将有另一个数据库"Users",它与DomainID绑定.(只是一个例子)


选择器将在界面上显示"Public",当用户选择它时,它将具有值"1".那么无论如何我可以做这样的事情吗?

tac*_*cos 1

首先,您没有提供有关您的网络服务的详细信息。假设它是基于 SOAP 的,那么我强烈推荐sudzcwsd2lobjc。这些将为您生成代码,以便将 WSDL def 很好地转换为 Objective C 类。

至于 UIPickerView“隐藏”值的问题,这个问题非常简单。创建一个NSArrayof NSDictionaries. 使用您的示例(假设所有都是字符串):

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];

并在你的 UIPickerViewDelegate 方法中

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

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

}

最后在你使用 pickerview 的任何地方(比如你的网络服务)

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

希望这可以帮助!