2014-11-10 9 views
5

के लिए केस संवेदी छानने मैं निम्नलिखित NSPredicate उपयोग कर रहा हूँ छानने के लिए,NSPredicate - कई की स्थिति

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(firstName CONTAINS %@) OR (lastName CONTAINS %@ )OR (UserName CONTAINS %@) ", myText,myText,myText]; 
NSArray *filtered = [responseArray filteredArrayUsingPredicate:predicate]; 

यह ठीक काम करता है, लेकिन यह केस-संवेदी है। मुझे फ़िल्टरिंग की आवश्यकता है असंवेदनशील होना चाहिए।

मैं कोशिश की है,

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(ANY firstName CONTAINS %@) OR (ANY lastName CONTAINS %@ )OR (ANY UserName CONTAINS %@) ", myText,myText,myText]; 

लेकिन यह त्रुटि

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The left hand side for an ALL or ANY operator must be either an NSArray or an NSSet.' 

मैं नहीं समझ सकता क्या यह this answer में उल्लेख किया गया था फेंकता है। क्या कोई सुझाव दे सकता है कि मैं ऊपर फ़िल्टरिंग में क्या बदलूं?

उत्तर

15

CONTAINS[c] के साथ सभी CONTAINS को बदलें। स्क्वायर ब्रैकेट्स में "सी" का मतलब मामला असंवेदनशील है। आप इसे "डी" का उपयोग भी diacritic असंवेदनशील बनाने के लिए कर सकते हैं। यह "भविष्यवाणी प्रोग्रामिंग गाइड" में समझाया गया है।

+0

यह काम कर रहा है धन्यवाद। एप्पल दस्तावेज देखने के बजाय मैं अपने सभी कोडिंग मुद्दों को Google पर भेज दूंगा। [यह उत्तर] (http://stackoverflow.com/a/1669433/756941) ने मुझे असंवेदनशील मामले के लिए 'किसी भी' कीवर्ड का उपयोग करने का नेतृत्व किया। कृपया लिंक जोड़ें जहां इसे भविष्यवाणी प्रोग्रामिंग गाइड में उल्लिखित किया गया है .. – NAZIK

संबंधित मुद्दे