1

对不起,我是IOS新手,我无法弄清楚这个问题的解决方案

这只是一个初学者餐厅菜单

有一个包含项目和价格的表格视图,当我单击一个项目时,它会显示另一个视图,用户必须输入数量并单击完成按钮,所以当用户单击完成时,我想将数量乘以价格,如何我是否检索该特定价格并将其与文本字段中用户输入的数量相乘。

这是我的代码

我在名为的 Menu 头文件中声明了 NSDictionary

NSDictionary *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 有一个视图,其中有一个文本字段和一个表示完成的按钮,现在当我单击完成按钮时,我需要检索该特定汤的值并将其乘以我输入的数量。我的问题是我应该如何检索该特定键的价格(值)并将其与数量相乘。

4

2 回答 2

2
dict=[[NSDictionary alloc]initWithObjectsAndKeys:
                     @"TomatoSoup",@"20.00",@"VegManchowSoup",@"12.00",nil];

该方法是initWithObjectsAndKeys,这意味着首先是对象,然后是键,(键“20.00”,对象-“TomatoSoup”)-在您的情况下,情况正好相反。

其次,不要使用 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;

并在显示之前将这些值传递给视图控制器。然后在里面你可以对它们做任何你想做的事情。PS 使用属性来操作实例变量的值是一种很好的做法。

于 2012-08-24T07:04:51.423 回答
0

您可以通过使用从 Dictionary 中检索一个值。

[dict objectForKey:@"someDummyKey"];

但老实说。您应该使用 NSMutableArray 作为 UITableView 的数据源,而不是 NSDictionary。

于 2012-08-24T06:55:01.153 回答