2016-09-22 48 views
0

創建我已經NSMutable數組,它包含在其索引中的某些字段作爲鍵和值的對像這樣如何使用NSPredicate的NSMutableArray從的NSMutableArray /的NSMutableDictionary

Result =  (
      { 
     FName = @"Achal"; 
     MName = @"Pradip"; 
     LName = @"Gandhi"; 
     AGE = 35; 
    }, 
    { 
     FName = @"Jenish"; 
     MName = @"Pavan"; 
     LName = @"Patel"; 
     AGE = 40; 
    } 
    { 
     FName = @"Pritesh"; 
     MName = @"Amit"; 
     LName = @"Dave"; 
     AGE = 50; 
    } 
    { 
     FName = @"Mehul"; 
     MName = @"Nikhil"; 
     LName = @"Shah"; 
     AGE = 40; 
    } 
); 

從那個陣列I要過濾它,我需要進行放使用NSPredicate這樣

FilterArray = { 
     FName = @"Achal"; 
     LName = @"Gandhi"; 
    }, 
    { 
     FName = @"Jenish"; 
     LName = @"Patel"; 
    } 
    { 
     FName = @"Pritesh"; 
     LName = @"Dave"; 
    } 
    { 
     FName = @"Mehul"; 
     LName = @"Shah"; 
    } 
); 

只有「FName參數」 &「LName的」鍵從原來的陣列必需。

+0

使用你的數組像字典的數組,這就是所有,你需要使用該鍵的地方 –

回答

0

我用下面的代碼和它的完美工作做了解決方案。

NSMutableArray *tempArray = [[NSMutableArray alloc]init]; 


for(int i=0;i < self.Result.count;i++){ 
    NSMutableDictionary *cartData = [[NSMutableDictionary alloc]init]; 

    [cartData setObject:[[Result objectAtIndex:i] valueForKey:@"Fname"] forKey:@"FName"]; 


    [cartData setObject:[[Result objectAtIndex:i] valueForKey:@"LName"] forKey:@"LName"]; 

    [tempArray addObject:cartData]; 
} 

但這是一個循環中完成,但我想使用並與NSPredicate幫助解決這個問題。

1

NSPrecate返回按一個或多個條件過濾的對象列表。 在你的情況,你想獲得一些數組,但具有不同的對象。 您可以使用此代碼:

NSMutableArray *FilterArray =[NSMutableArray new]; 
    for (NSDictionary *dic in Result){ 
     NSDictionary *newdic = [NSDictionary dictionaryWithObjectsAndKeys:[dic objectForKey:@"FName"],@"FName",[dic objectForKey:@"LName"],@"LName", nil]; 
     [FilterArray addObject:newdic]; 
    } 
0

你可以得到渴望的輸出結果陣列,而不使用NSPredicate

這裏是一小段代碼

NSArray *arrObjects = [responseObject valueForKey:@"Result"]; 

[arrObjects enumerateObjectsUsingBlock:^(NSDictionary *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 
    [arrFilterResult addObject:@{@"FName":[obj valueForKey:@"FName"],@"LName":[obj valueForKey:@"LName"]}]; 
}]; 

,如果您有任何問題,讓我知道。

相關問題