2013-02-02 61 views
5

की शुरुआत में शामिल होना मैं एनएसएसटींग एनएसएसटींग B के सामने संलग्न करना चाहता हूं। एनएसएसटींग के अंत की बजाय एनएसएसटींग की शुरुआत में शामिल करने के लिए एक अंतर्निहित विधि है?एनएसएसटींग विधि

मुझे पता है कि मैं stringWithFormat उपयोग कर सकते हैं, लेकिन फिर stringWithFormat और stringByAppendingString का उपयोग कर एक NSString के अंत तक पाठ जोड़ने के लिए के बीच क्या अंतर है?

उत्तर

34

यदि आप एक स्ट्रिंग के अंत में जोड़ सकते हैं, तो आप स्ट्रिंग की शुरुआत में प्रीपेड कर सकते हैं।

संलग्न

NSString* a = @"A"; 
NSString* b = @"B"; 
NSString* result = [a stringByAppendingString:b]; // Prints "AB" 

प्रारंभ में लगा

NSString* a = @"A"; 
NSString* b = @"B"; 
NSString* result = [b stringByAppendingString:a]; // Prints "BA" 
4

आप stringWithFormat भी उपयोग कर सकते हैं:

NSString *A = @"ThisIsStringA"; 
NSString *B = @"ThisIsStringB"; 
B = [NSString stringWithFormat:@"%@%@",A,B]; 

stringByAppendingString NSString, ०१२३५१६४१०६१ का एक उदाहरण विधि हैस्ट्रिंगविथफॉर्मैट कक्षा एनएसएसटींग का एक वर्ग तरीका है।

+0

उदाहरण वर्ग बनाम NSString पर 'बी' कोई असर पड़ता है? एक दूसरे का उपयोग करने का क्या फायदा होगा? – AnsonL

+0

आपको ऑब्जेक्ट उन्मुख प्रोग्रामिंग का अध्ययन करना है, यह एक मौलिक प्रिंसिपी –

+0

है, मैं समझता हूं कि इंस्टेंस और क्लास विधियां अलग-अलग हैं, लेकिन यह आपके उपयोग के बाद उपयोगिता पीएफ एनएसएसटींग "बी" को कैसे प्रभावित करती है? – AnsonL

2

शायद यह इंगित करने लायक है कि "एक स्ट्रिंग को किसी अन्य पर जोड़ना" जैसी कोई चीज़ नहीं है। एनएसएसटींग अपरिवर्तनीय है।

हर मामले में, आप "एक नई स्ट्रिंग बना रहे हैं जिसमें एक स्ट्रिंग एक दूसरे के बाद होती है"।

इससे कोई फर्क नहीं पड़ता कि आपने नव निर्मित स्ट्रिंग को उसी वैरिएबल में वापस रखा है।

आप कभी भी "स्ट्रिंग के अंत में टेक्स्ट जोड़ना नहीं" रहे हैं।

9

सिंगल लाइन समाधान:

myString = [@"pretext" stringByAppendingString:myString]; 
0

यहाँ मैंने स्विफ्ट में समाधान:

extension String { 

    // Add prefix only, if there is not such prefix into a string 
    mutating func addPrefixIfNeeded(_ prefixString: String?) { 
     guard let stringValue = prefixString, !self.hasPrefix(stringValue) else { 
      return 
     } 
     self = stringValue + self 
    } 


    // Add force full prefix, whether there is already such prefix into a string 
    mutating func addPrefix(_ prefixString: String?) { 
     guard let stringValue = prefixString else { 
      return 
     } 
     self = stringValue + self 
    } 
}