[英]How to search From Nsarray in iOS?
我有NSarray,我想根据我数组中的所有键进行搜索。 我已应用此代码。 首先,这是我的数组。
MyArray = (
{
Payment = "PAY-0172595";
"Payment Date" = "2014-10-29";
"Payment ID" = a1Wo00000011uMMEAY;
Status = Paid;
"Total Amount" = "217.76";
},
{
Payment = "PAY-0177591";
"Payment Date" = "2014-10-30";
"Payment ID" = a1Wo00000011w7uEAA;
Status = Paid;
"Total Amount" = "100.00";
}
)
在上面,我显示的数组索引较少,例如,现在这是数组,我在UItable View中使用了该数组,并希望根据每个数组键(例如付款,付款日期,状态等)进行搜索。所有键,但是我认为这不是一个好方法。我在这里显示我正在使用的代码。
- (void)viewDidLoad
{
for (int i=0; i<Payments_details.count; i++)
{
NSString *str=[NSString stringWithFormat:@"%@/%@/%@/%@/%@",[[Payments_details objectAtIndex:i] valueForKey:@"Payment"],[[Payments_details objectAtIndex:i] valueForKey:@"Total Amount"],[[Payments_details objectAtIndex:i] valueForKey:@"Payment Date"],[[Payments_details objectAtIndex:i] valueForKey:@"Status"],[[Payments_details objectAtIndex:i] valueForKey:@"Payment ID"]];
NSDictionary *dict=[[NSDictionary alloc]initWithObjectsAndKeys:str,@"SN", nil];
[search_arr addObject:dict];
}
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if (![search_bar.text isEqualToString:@""])
{
searching=YES;
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchBar.text];
// NSLog(@"tim %@",resultPredicate);
searchArr = [[search_arr valueForKey:@"SN"] filteredArrayUsingPredicate:resultPredicate];
NSLog(@"tim %@",searchArr);
}
else
{
searching=NO;
}
[table_Payments reloadData];
}
这段代码可以成功工作,但是假设当我们像PAY-0177那样进行搜索时。...在我的数组中,该第二个索引,现在根据搜索,我们需要使该第一个索引成为第二个索引。 所以我在这里也成功完成了我的代码。我在这里显示的代码更少。所以请忽略所有内容。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
if (searching==YES)
{
NSArray* foo = [[searchArr objectAtIndex:indexPath.row] componentsSeparatedByString: @"/"];
custom_cell.Payment.text = [foo objectAtIndex: 0];
custom_cell.Totalamount.text=[foo objectAtIndex: 1];
custom_cell.PaymentDate.text=[foo objectAtIndex: 2];
custom_cell.Status.text=[foo objectAtIndex: 3];
}
}
据此,我得到了我想要的特殊索引。 但是我认为阵列中只有四个键现在假设如果我有15个15个键,那么我认为这不是一个好方法。所以请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.