簡體   English   中英

如何在iOS中從Nsarray搜索?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM