के साथ त्रुटि जब मैं UISearchBar
पर पूर्ववत करने का प्रयास करता हूं तो मेरा ऐप क्रैश हो जाता है। मेरे एप्लिकेशन में मैं खोज पट्टी पर एक '%' पर हस्ताक्षर में प्रवेश को रोकने के लिए कोड है और ऐसा करने के लिए यह करने के लिए एक% की जगह @ "" के रूप में नीचे textDidChange विधि में:"[NSBigMutableString substringWithRange:]: रेंज {0, 10} सीमाओं से बाहर; स्ट्रिंग लम्बाई 9" पूर्ववत
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.searchBar.text = [searchText stringByReplacingOccurrencesOfString:@"%" withString:@""];
}
तो अगर मैं टाइप पाठ "abc % xyz ", खोज बार पर दिखाई देने वाला अंतिम पाठ 'abcxyz' होगा। जब मैं पूर्ववत क्लिक करता हूं, तो मुझे लगता है कि 'xyz' साफ़ हो जाता है और मैं अभी भी 'abcxyz' को साफ़ करने के बजाय खोज बार पर 'abc' देखता हूं।
अब अगर मैं 'abc' को साफ़ करने के लिए पूर्ववत पर क्लिक करता हूं तो मेरा ऐप [NSBigMutableString substringWithRange:]: Range out of bounds
त्रुटि के साथ क्रैश हो जाता है।
मुझे लगता है कि '%' को @ "" से बदल दिया गया है, फिर भी पूर्ववत प्रबंधक इसे पकड़ रहा है और इसलिए सीमा सीमा से बाहर जा रही है।
मैंने [searchBar.undoManager removeAllActions];
textDidChange
में "@" के साथ% बदलने के बाद कोशिश की, लेकिन इससे मदद नहीं मिली। यहाँ कोड है:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.searchBar.text = [searchText stringByReplacingOccurrencesOfString:@"%" withString:@""];
[searchBar.undoManager removeAllActions];
}
प्रश्न: किसी से पहले इसी तरह के मुद्दे का सामना करना पड़ा? मैं पूर्ववत कैसे संभाल सकता हूं?
हालांकि removaAllActions मेरे लिए काम किया। हमने अंततः हमारे ऐप के लिए पूर्ववत करने के लिए शेक बंद करने का विकल्प चुना। – SuperGuyAbe