2014-06-16 6 views
22

में stringWithFormat का उपयोग करके http: // के साथ यूआरएल कैसे प्रीपेड करें I UIWebView का उपयोग कर एक कस्टम ब्राउज़र बना रहा हूं।स्विफ्ट

केस का उपयोग करें: उपयोगकर्ता पता बार में "www.abc.com" दर्ज करता है। त्रुटि नीचे फेंक दिया:

Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo=0x19860770 {NSErrorFailingURLKey=file://www.abc.com, NSErrorFailingURLStringKey=file://www.abc.com, NSLocalizedDescription=Frame load interrupted}

कारण: यूआरएल के साथ prepended होने की जरूरत है "http: //"

मैं NSString की stringWithFormat विधि का उपयोग करना चाहते हैं, लेकिन मैं प्राप्त नहीं कर पा रहे वाक्यविन्यास सही है। उद्देश्य-सी में, हमारे पास है;

NSString* modifiedURLString = [NSString stringWithFormat:@"http://%@", urlString]; 

स्विफ्ट में, विधि नहीं है ?!

var modifiedURLString: String = String(`stringWithFormat not here?!...`) 

मैं तो स्विफ्ट के साथ उद्देश्य सी मिश्रण करने की कोशिश की:

वर modifiedURLString: NSString = [NSString stringWithFormat not here?!...

तो मैं सीधे-अप ऑब्जेक्टिव-सी कोशिश की:

NSString * modifiedURLString = [एनएसएसटींग स्ट्रिंगविथफॉर्मैट: @ "http: //", urlString];

आपकी मदद के लिए धन्यवाद। निष्ठा से, कीथ

+3

इरादा 'http: //" + प्रत्यय' सिर्फ काम नहीं करता था? – Tommy

+0

मैं इस ट्यूटोरियल का उपयोग कर रहा था। "उपयोगकर्ता इनपुट सुधारना" के अंतर्गत देखें http://iosdeveloperzone.com/2011/05/22/tutorial-building-a-web-browser-with-uiwebview-part-3/ – kmiklas

उत्तर

8

आप स्ट्रिंग प्रक्षेप का उपयोग कर सकते हैं:

let site = "www.abc.com" 
let url = "http://\(site)" 
+0

बस इसके बारे में सोचकर, प्रारूप क्या है NSLocalizedString से आता है? क्या ऐसा करने के लिए एक स्विफ्ट विधि है? – rckoenes

63

NSString के formatWithString के बराबर: बस "प्रारूप:" है, जिन्हें आप नीचे है, लेकिन ऐसा करने के लिए है कि उदाहरण के लिए कोई वास्तविक जरूरत नहीं है आप दे दिया है। बस बस (हालांकि एक 4 रास्ते से) यहाँ पूरा किया जा रहा है की खातिर तार, या उपयोग प्रक्षेप संलग्न ...

let urlString = "www.abc.com" 
var modifiedURLString = NSString(format:"http://%@", urlString) as String 
// or just 
modifiedURLString = String(format:"http://%@", urlString) 
// or 
let simpler = "http://" + urlString 
// or use string interplotaion 
let simplest = "http://\(urlString)" 
16

, यहाँ अपने विकल्प हैं:

1: NSString के stringWithFormat का उपयोग करने का तरीका स्विफ्ट :

let url = NSString(format: "http://%@", aSuffix) 

2: "+" ऑपरेटर के साथ स्विफ्ट की क्षमता को जोड़कर तारों का लाभ उठाएं।

let url = "http://" + aSuffix 

3: एनएसएसटींग की stringByAppendingString() विधि का उपयोग करें।

let url = "http://" 
url.stringByAppendingString(aSuffix) 

4: स्ट्रिंग इंटरपोलेशन।

let url = "http://\(aSuffix)" 
+1

आप पहली बार एक बंद ब्रैकेट चूक गए। – Milo