Simple use of NSPredicate in query, nspredicate Query
Run the code. Each piece of code can be run directly with comments and running results.
// Directly use = to strictly match NSArray * arrOriginal = [NSArray arrayWithObjects: @ "c1", @ "c", @ "cd", @ "cdd ", @ "cd", nil]; NSString * match = @ "cd"; NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "SELF =%@", match]; NSArray * results = [arrOriginal filteredArrayUsingPredicate: predicate]; NSLog (@ "result = % @", results );
Print result:
Result = (
Cd,
Cd
)
// Like match, similar to the usage in SQL NSArray * arrOriginal = [NSArray arrayWithObjects: @ "c1", @ "d", @ "cd", @ "cdd ", @ "dd", @ "dcd", @ "cdc", nil]; NSString * match = @ "c *"; // NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "SELF like % @", match]; NSArray * results = [arrOriginal filteredArrayUsingPredicate: predicate]; NSLog (@ "result = % @", results );
Print result:
Result = (
C1,
Cd,
Cdd,
Cdc
)
// Match NSArray with case-insensitive characters * arrOriginal = [NSArray arrayWithObjects: @ "Cdd", @ "cDc", @ "cdd", @ "dcdd", nil]; NSString * match = @ "cd *"; NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "SELF like [c] % @", match]; NSArray * results = [arrOriginal response: predicate]; NSLog (@ "result = % @", results );
Print result:
Result = (
Cdd,
CDc,
Cdd
)
// Use regular expression to filter NSArray * arrOriginal = [NSArray arrayWithObjects: @ "c1", @ "C3", @ "d2", @ "c2", nil]; NSString * match = @ "^ c \ d? "; NSPredicate * predicate = [NSPredicate predicateWithFormat: @" SELF matches % @ ", match]; NSArray * results = [arrOriginal filteredArrayUsingPredicate: predicate]; NSLog (@ "result = % @", results );
Print result:
Result = (
C1,
C2
)
// Filter NSArray * arrFilter = [NSArray arrayWithObjects: @ "aa", @ "bb", nil]; NSArray * arrOriginal = [NSArray arrayWithObjects: @ "dds", @ "bb", @ "c1", @ "C3", @ "bb", @ "aa", @ "c2", nil]; NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "NOT (SELF in % @)", arrFilter]; // NSArray * results = [arrOriginal attributes: predicate]; NSLog (@ "result = % @", results );
Print result:
Result = (
Dds,
C1,
C3,
C2
)