对不起,我是IOS的新手,我无法找到解决这个问题的方法
这只是一个初学餐厅菜单
有一个包含项目和价格的tableview,当我点击一个项目时,它显示另一个视图,用户必须输入数量并单击一个完成按钮,所以当用户点击完成时我想要乘以数量乘以价格,我如何检索该特定价格并将其与文本字段中的用户输入数量相乘。
这是我的代码
我在名为
的Menu头文件中声明了NSDictionaryNSDictionary *dict;
我的viewdidload方法
dict=[[NSDictionaryalloc]initWithObjectsAndKeys:
@"TomatoSoup",@"20.00",@"VegManchowSoup",@"12.00",nil];
NSLog(@"%@",dict);
[super viewDidLoad];
我已在表格视图中显示此内容
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section{
return [[dict allKeys]count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
NSArray *sortedkeys=[[dict allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSString *key=[sortedkeys objectAtIndex:indexPath.row];
NSString *value=[dict objectForKey:key];
cell.textLabel.text=value;
cell.detailTextLabel.text=key;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{
if(indexPath.row==0){
VegQuantity *vegetarian1 = [[VegQuantity alloc] initWithNibName:@"VegQuantity" bundle:nil];
vegetarian1.m_SelectedIndexPath=indexPath.row;
vegetarian1.pass=dict;
[self presentModalViewController:vegetarian1 animated:YES];
}
if(indexPath.row==1){
VegQuantity *vegetarian1 = [[VegQuantity alloc] initWithNibName:@"VegQuantity" bundle:nil];
vegetarian1.m_SelectedIndexPath=indexPath.row;
[self presentModalViewController:vegetarian1 animated:YES];
}
}
VegQuantity.h 有一个View有一个文本字段和一个按钮说完了, 现在,当我点击完成按钮时,我需要检索特定汤的值并将其与我输入的数量相乘。 我的问题是我应该如何检索该特定密钥的价格(值)并将其与数量相乘。
答案 0 :(得分:2)
dict=[[NSDictionary alloc]initWithObjectsAndKeys:
@"TomatoSoup",@"20.00",@"VegManchowSoup",@"12.00",nil];
方法是initWithObjectsAndKeys,这意味着首先是对象然后是键,(键" 20.00",对象 - " TomatoSoup") - 在你的情况下它是' s对面。
其次,而不是价格的NSString(我想它的价格或数量)使用NSNumber - [NSNumber numberWithFloat:20.0f]。
然后,制作你的VegQuantity视图控制器(顺便说一句,将其称为VegQuantityViewController,以保持命名约定)2属性:
@property (nonatomic, strong) NSString *itemName; //Use strong if using ARC, otherwise retain
@property (nonatomic, strong) NSNumber *price;
并在显示之前将这些值传递给视图控制器。然后在里面,你可以随心所欲地做任何事情。 附:使用属性来操作实例变量的值是一种很好的做法。
答案 1 :(得分:0)
使用。
从Dictionary中检索值[dict objectForKey:@"someDummyKey"];
但说实话。您应该使用NSMutableArray作为UITableView的数据源,而不是NSDictionary。