जवाबों:
अपने कंट्रोलर क्लास में, एक एक्शन मेथड बनाएँ जो आप इंटरफ़ेस बिल्डर में बटन को हुक करेंगे। उस विधि के अंदर आप अपनी स्ट्रिंग को इस तरह से ट्रिम कर सकते हैं:
if ([string length] > 0) {
string = [string substringToIndex:[string length] - 1];
} else {
//no characters to delete... attempting to do so will result in a crash
}
यदि आप कोड की सिर्फ एक पंक्ति में इसे करने का एक फैंसी तरीका चाहते हैं, तो आप इसे इस रूप में लिख सकते हैं:
string = [string substringToIndex:string.length-(string.length>0)];
* फैंसी वन-लाइन कोड स्निपेट की व्याख्या:
यदि हटाने के लिए कोई वर्ण है (यानी स्ट्रिंग की लंबाई 0 से अधिक है) तो
(string.length>0)रिटर्न 1 इस प्रकार कोड रिटर्न बनाता है:
string = [string substringToIndex:string.length-1];
यदि हटाने के लिए कोई वर्ण नहीं है (यानी लंबाई स्ट्रिंग 0 से अधिक) नहीं है
(string.length>0)रिटर्न 0 : इस प्रकार कोड में वापसी
string = [string substringToIndex:string.length-0];
कौन रोकता दुर्घटनाओं।
string != nil && [string length] > 0। संभावना है कि डोनल के स्ट्रिंग चर को जारी किया जा रहा है।
यदि यह एक NSMutableString है (जो मैं आपको गतिशील रूप से बदलने के बाद से सुझाऊंगा), आप उपयोग कर सकते हैं:
[myString deleteCharactersInRange:NSMakeRange([myRequestString length]-1, 1)];
यहां दिए गए समाधान वास्तव में मल्टी-बाइट यूनिकोड वर्ण ("रचित वर्ण") को ध्यान में नहीं रखते हैं, और इसके परिणामस्वरूप अमान्य यूनिकोड तार हो सकते हैं।
वास्तव में, आईओएस हेडर फाइल जिसमें substringToIndexनिम्नलिखित टिप्पणी होती है, की घोषणा होती है:
संकेत: रेंजऑफ कॉमपोज्डड्रेचरस असमानता के साथ प्रयोग करें। रंज: टूटे हुए पात्रों को तोड़ने से बचने के लिए
अंतिम वर्ण को सही ढंग से हटाने के लिए उपयोग करने का तरीकाrangeOfComposedCharacterSequenceAtIndex: देखें ।
प्रलेखन आपका मित्र है, NSStringएक कॉल का समर्थन करता है substringWithRangeजो स्ट्रिंग को छोटा कर सकता है जो आपके पास एक छोटी स्ट्रिंग है। आप इसका एक उदाहरण संशोधित नहीं कर सकते NSStringअपरिवर्तनीय है। यदि आपके पास NSMutableStringएक विधि है जिसे बुलाया जाता है deleteCharactersInRangeजो स्ट्रिंग को जगह में संशोधित कर सकता है
...
NSRange r;
r.location = 0;
r.size = [mutable length]-1;
NSString* shorted = [stringValue substringWithRange:r];
...
substringWithRange:रिटर्न ए NSString*। पॉइंटर पर ध्यान दें।