任何人都知道如何填充,例如从Web服务到UIPickerView的类别列表? 此外,是否可以存入隐藏价值?
实施例,
“隐藏ID为”1“的”公共“
“隐藏身份”为“2”的“会员”等等。
这两个值来自web服务。我顺便使用ASIHTTPRequest框架。
我是iOS / XCode / Objective C的新手。希望有人能帮忙):谢谢
===============回复================
@MSgambel
好吧,尽我所能解释。至于现在,我们如何将项目放入UIPickerView:
[NSArray arrayWithObjects:@“John Appleseed”,@“Chris Armstrong”,@“Serena Auroux”,@“Susan Bean”,@“Luis Becerra”,@“Kate Bell”,@“Alain Briere”,零];
而不是上面的那些项目,如何将项目从Web服务填充到选择器?
@Akshay
我隐含的意思是选择器将有2个值,但只有标签“Public”在选择器上可见而不是id“1”。我想实现它有点类似于网站上的下拉菜单。
在名为“Domain”的数据库中,我们有以下格式的值:
DomainID:DomainName
1:公众
2:CompanyA
3:CompanyB
将有另一个数据库“Users”,它与DomainID绑定。 (只是一个例子)
选择器将在界面上显示“Public”,当用户选择它时,它将具有值“1”。那么无论如何我可以做这样的事情吗?
答案 0 :(得分:1)
首先,您没有提供有关Web服务详细信息的大量详细信息。假设它是基于SOAP的,那么我强烈推荐sudzc或wsd2lobjc。这些将为您生成代码,以便将您的WSDL def转换为Objective C类。
至于UIPickerView“隐藏”值的问题,这个很简单。创建一个NSArray
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"];
希望这有帮助!
答案 1 :(得分:0)
在使用ASIHTTPRequest加载它们之后,我会将这些值保存在propertyList中。要保存文件,请使用
`NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString * documentsDirectory = [paths objectAtIndex:0];
NSString * path = [documentsDirectory stringByAppendingPathComponent:@“data.plist”];
NSMutableArray * array = [[NSMutableArray alloc] init]; [array addObject:[NSArray arrayWithObjects:[NSString stringWithFormat:@“%@”,stringOne],//添加所有字符串,如nil]]; [array writeToFile:path atomically:YES];`
然后使用[NSMutableArray alloc] initWithContentsOfFile:path]
将值加载到pickerView中。