2012-11-17 20 views
5
NSString *string = [myString stringByReplacingOccurrencesOfString:@"<wow>" withString:someString]; 

मेरे पास यह कोड है। अब मान लीजिए कि मेरे ऐप का उपयोगकर्ता दो अलग-अलग तारों में प्रवेश करता है जिसे मैं दो अलग-अलग तारों से बदलना चाहता हूं, मैं इसे कैसे प्राप्त करूं? मुझे परवाह नहीं है कि यह निजी एपीआई का उपयोग करता है, मैं जेलब्रोकन मंच के लिए विकास कर रहा हूं। मेरा उपयोगकर्ता या तो प्रवेश करने जा रहा है या या। मैं उन लोगों के साथ तार के किसी भी घटनाओं बदलना चाहते हैं उनके संबंधित होने वाली है-प्रतिस्थापित-साथ तार :)कई अन्य तारों के साथ एकाधिक तारों की घटनाओं को प्रतिस्थापित करने के लिए कैसे करें [NSString]

अग्रिम धन्यवाद: पी

उत्तर

6

दोनों dasblinkenlight की और मथायस के जवाब काम करेंगे, लेकिन वे दोनों परिणाम कुछ मध्यवर्ती एनएसएसटींग्स ​​का निर्माण; यह वास्तव में एक समस्या नहीं है यदि आप अक्सर इस ऑपरेशन नहीं कर रहे हैं, लेकिन एक बेहतर दृष्टिकोण इस तरह दिखेगा।

NSMutableString *myStringMut = [[myString mutableCopy] autorelease]; 
[myStringMut replaceOccurrencesOfString:@"a" withString:somethingElse]; 
[myStringMut replaceOccurrencesOfString:@"b" withString:somethingElseElse]; 
// etc. 

फिर आप myStringMut उपयोग कर सकते हैं के रूप में आप myString का उपयोग किया है, क्योंकि NSMutableString एक NSString उपवर्ग है।

+0

धन्यवाद, ओह महान सर्वशक्तिमान बचतकर्ता: पी नहीं, मुझे वास्तव में इसका मतलब है, बहुत बहुत धन्यवाद :) – s6luwJ0A3I

+1

यह देखने के लिए एक बात यह है कि अगर कुछ में "बी" एस है, तो उन्हें कुछ भी बदल दिया जाएगा। कभी-कभी यह ठीक है लेकिन कभी-कभी यह नहीं होता है। यदि आपको उस स्थिति से बचने की आवश्यकता है तो एक और परिष्कृत दृष्टिकोण की आवश्यकता है। –

2

मैं सिर्फ स्ट्रिंग की जगह पद्धति को पुन:

NSString *string = [myString stringByReplacingOccurrencesOfString:@"foo" withString:@"String 1"]; 
string = [string stringByReplacingOccurrencesOfString:@"bar" withString:@"String 2"]; 
+0

में मेरे लिए अच्छी तरह से काम मुझे लगता है कि के बारे में सोचा है, लेकिन फिर जब मैं इसे बाहर का परीक्षण किया मैं मैं वास्तव में आप जैसे भयानक लोग proffesionals पूछ पर विचार करना चाहिए महसूस किया। धन्यवाद एक बहुत – s6luwJ0A3I

6
चल पाएंगे

सरल समाधान stringByReplacingOccurrencesOfString दो बार चल रहा है:

NSString *string = [[myString 
    stringByReplacingOccurrencesOfString:@"<wow>" withString:someString1] 
    stringByReplacingOccurrencesOfString:@"<boo>" withString:someString2]; 
+0

:-) ** बहुत बढ़िया ..looks तेज इंटरफ़ेस में अधिक चिकनी ** - 'जाने स्ट्रिंग = myString.stringByReplacingOccurrencesOfString (" ", withString: someString1) .stringByReplacingOccurrencesOfString (" ", withString: someString2)' –

0

यह स्विफ्ट 3,1

let str = "hi hello hey" 

var replacedStr = (str as NSString).replacingOccurrences(of: "hi", with: "Hi") 

replacedStr = (replacedStr as NSString).replacingOccurrences(of: "hello", with: "Hello") 

replacedStr = (replacedStr as NSString).replacingOccurrences(of: "hey", with: "Hey") 

print(replacedStr) // Hi Hello Hey