i have a Core Data Object and i have 2 Fieds (one String(GUID) and one Int which i want to use as Filter)
So in SQL it would be \"SELECT * FROM Answers WHERE qIndex = 1
Instead of worrying about %@
conversions and then composing AND
predicates, you can use the PredicatePal framework:
let compound = *(Key("qIndex") == qIndex && Key("formUUID") == formUUID)
Assuming that qIndex
and formUUID
are the correct type, Swift will automatically deduce the correct types for the Key
objects.
This is not the exact response to your question, but a problem people might now encouter with your code now:
In the latest version of XCode, you must now unwrap the predicate, like this:
var compound = NSCompoundPredicate.andPredicateWithSubpredicates([predicate1!, predicate2!])
because NSPredicate initializer now return NSPredicate? type.
If formUUID
is an NSString
or a Swift String
then you have to use the
%@
placeholder:
let resultPredicate2 = NSPredicate(format: "formUUID = %@", formUUID)