উত্তর:
আপনার নিয়ামক শ্রেণিতে, একটি ক্রিয়া পদ্ধতি তৈরি করুন যা আপনি ইন্টারফেস বিল্ডারে বোতামটি হুক করবেন। এই পদ্ধতির অভ্যন্তরে আপনি আপনার স্ট্রিংটি এভাবে ছাঁটাতে পারেন:
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। ডোনালের স্ট্রিং ভেরিয়েবলটি প্রকাশের সম্ভাবনা বেশি।
এখানে প্রদত্ত সমাধানগুলি বাস্তবে মাল্টি-বাইট ইউনিকোড অক্ষর ("রচিত অক্ষর") গ্রহণ করে না এবং এর ফলে অবৈধ ইউনিকোড স্ট্রিং হতে পারে।
আসলে, আইওএস শিরোলেখ ফাইলটিতে যেটির ঘোষণাপত্র substringToIndexরয়েছে তাতে নিম্নলিখিত মন্তব্য রয়েছে:
ইঙ্গিত: সমন্বিত অক্ষরগুলি ভেঙে ফেলা এড়াতে: রেফারফোন কম্পোজড চ্যার্যাক্টর সিকোয়েন্সেসফোর্যাঞ্জের সাথে ব্যবহার করুন
শেষ অক্ষরটিকে সঠিকভাবে মুছতে কীভাবে ব্যবহার করবেন তাrangeOfComposedCharacterSequenceAtIndex: দেখুন ।
ডকুমেন্টেশনটি আপনার বন্ধু, এমন NSStringএকটি কল সমর্থন substringWithRangeকরে যা আপনার কাছে স্ট্রিংটি সংক্ষিপ্ত করে তুলতে পারে যে সংক্ষিপ্ত স্ট্রিং আপনার কাছে রয়েছে। আপনি NSStringএটির অপরিবর্তনীয় একটি উদাহরণ সংশোধন করতে পারবেন না । আপনার যদি থাকে NSMutableStringতবে এর একটি পদ্ধতি রয়েছে যা deleteCharactersInRangeস্ট্রিংটিকে পরিবর্তিত করতে পারে
...
NSRange r;
r.location = 0;
r.size = [mutable length]-1;
NSString* shorted = [stringValue substringWithRange:r];
...
substringWithRange:একটি ফেরৎ NSString*। পয়েন্টার নোট নিন।