2017-07-04 4 views
1
NSPredicate *predicate3 = [NSPredicate predicateWithFormat:@"ANY %K.%K.%K CONTAINS[c] %@",@"Assets",@"TFloorAssets",@"AssetNo",strSearch]; 

NSArray *filteredPendingList = [NSMutableArray arrayWithArray:[arrOfAllAssetsCategory filteredArrayUsingPredicate:predicate3]]; 

私は上記の種類のコードをマルチレベル検索に使用していますか?文字列を検索するためにマルチレベル配列をフィルタリングする方法はありますか?

答えて

-1

使用以下

NSPredicate *predicate = [NSCompoundPredicate orPredicateWithSubpredicates: 
          @[predicateEventsByAsset, predicateEventsByFloorAsset ,predicateEventsByAssetNo]]; 
self.filteredEventsArray = [self.eventsArray filteredArrayUsingPredicate:predicate]; 
+0

私はdownvoteの理由を知っていますか? –

+0

この述語は "資産に[c]%@またはTFloorAssetsに[c]%@またはAssetNo [c]に%@"が含まれています。問題は「どのAssets.TFloorAssets.AssetNoにも[c]%@が含まれています。 – Willeke

2

使用のような "複合述語" collection operator

[NSPredicate predicateWithFormat:@"ANY [email protected] contains[c] %@", strSearch] 

またはsubquery

[[NSPredicate predicateWithFormat:@"SUBQUERY(Assets, $asset, ANY $asset.TFloorAssets.AssetNo contains[c] %@)[email protected] > 0", strSearch] 

または2サブクエリ:

[NSPredicate predicateWithFormat:@"SUBQUERY(Assets, $asset, SUBQUERY($asset.TFloorAssets, $tFloorAsset, $tFloorAsset.AssetNo contains[c] %@)[email protected] > 0)[email protected] > 0", strSearch] 
+0

どのような目的のために@unionOfArraysまたは$を使用していますか?あなたは私を簡単に提案したり、これらのものを読むことができるリンクを提供したりできますか? –

+1

答えへのリンクを追加しました。 – Willeke

+0

thnks dude @Willeke –

関連する問題