मुझे कोड की इन पंक्तियों के साथ कोई समस्या नहीं दिखाई दे रही है। यह पार्स क्यों नहीं कर सकता?प्रारूप स्ट्रिंग को पार्स करने में असमर्थ NSPredicate
[NSPredicate predicateWithFormat:@"(username CONTAINS[cd] %[email protected]) || "
"(userId CONTAINS[cd] %[email protected]) || "
"(firstname CONTAINS[cd] %[email protected]) || "
"(lastname CONTAINS[cd] %[email protected])", searchString]"
लॉग या तो मदद नहीं करता है।
न आया हुआ अपवाद 'NSInvalidArgumentException', कारण की वजह से उनका समापन एप्लिकेशन: 'प्रारूप स्ट्रिंग पार्स करने में असमर्थ "(उपयोगकर्ता नाम शामिल हैं [सीडी]% 1 $ @) || (userId शामिल हैं [सीडी]% 1 $ @) || (firstname शामिल हैं [सीडी]% 1 $ @) || (उपनाम शामिल हैं [सीडी]% 1 $ @) " '
संपादित करें 1:
ठीक है, ऐसा लगता है predicateWithFormat की तरह "% 1 $ @" समझ में नहीं आता है। मैं इसे
[... predicateWithFormat:[NSString stringWithFormat:...]] // (same format as above)
पर स्विच कर दिया। लेकिन, अगले समस्या है:
self.filteredUserList = [self.userList filteredArrayUsingPredicate:predicate];
न आया हुआ अपवाद 'NSUnknownKeyException', कारण की वजह से एप्लिकेशन समाप्त: '[valueForUndefinedKey:]: इकाई उपयोगकर्ता कुंजी के लिए नहीं कुंजी मान कोडिंग अनुरूप है " ए"।'
"ए" खोजशब्द टेक्स्ट में दर्ज किया गया कीवर्ड है। WUT?
मैं डिबग कंसोल में विधेय बाहर मुद्रित, कुछ भी गलत नहीं दिखाई देता है:
username CONTAINS[cd] a OR userId CONTAINS[cd] a OR firstname CONTAINS[cd] a OR lastname CONTAINS[cd] a
संपादित करें 2:
ठीक है, यह सुपर बदसूरत कोड के साथ हल समस्या:
[NSPredicate predicateWithFormat:@"(username CONTAINS[cd] %@) || "
"(userId CONTAINS[cd] %@) || "
"(firstname CONTAINS[cd] %@) || "
"(lastname CONTAINS[cd] %@)", searchString, searchString, searchString, searchString];
क्या होगा अगर मैं भविष्य में खोज क्षेत्र का विस्तार करना चाहता हूं? मुझे और पैरामीटर जोड़ना है? अधिक ", सर्चस्ट्रिंग, सर्चस्ट्रिंग, सर्चस्ट्रिंग"?
ईवान और Bannings के लिए धन्यवाद हल मेरे सवाल का 2 विकल्प दे रही है। मैंने दोनों का परीक्षण किया, और उन्होंने एक आकर्षण झूठ बोला। क्या कोई उन दोनों के बीच अलग-अलग समझा सकता है, और किस मामले में मैं किस विकल्प का उपयोग करूँ?
** नोट **
Bannings 'जवाब, ठीक है जब तक मेरी खोज स्ट्रिंग एक भी बोली '
फिर ऐप दुर्घटना में शामिल है। तो मुझे लगता है कि ईवान का उपयोग बेहतर है।
सही काम करता है! मुझे इसकी ही आवश्यकता थी। धन्यवाद – Eddie