डॉक्स से, ऐसा लगता है कि containsString()
एक स्ट्रिंग पर काम करना चाहिए:
स्विफ्ट के स्ट्रिंग प्रकार को फाउंडेशन के NSString वर्ग के लिए मूल रूप से ब्रिज किया जाता है। यदि आप कोको या कोको टच में फाउंडेशन ढांचे के साथ काम कर रहे हैं, तो इस अध्याय में वर्णित स्ट्रिंग विशेषताओं के अलावा, पूरे एनएसएसटीआरआई एपीआई आपके द्वारा बनाए गए किसी भी स्ट्रिंग मूल्य पर कॉल करने के लिए उपलब्ध है। आप किसी भी API के साथ एक स्ट्रिंग मान का उपयोग कर सकते हैं जिसके लिए NSString उदाहरण की आवश्यकता होती है।
हालाँकि, यह उस तरह से काम नहीं करता है।
यदि आप उपयोग करने का प्रयास करते हैं someString.containsString(anotherString)
, तो आपको एक संकलन समय त्रुटि मिलेगी जो बताता है 'String' does not contain a member named 'containsString'
।
तो, आपके पास कुछ विकल्प, जिनमें से एक स्पष्ट रूप से अपने को दूर करने की है के साथ छोड़ दिया रहे हैं String
का उपयोग करके ऑब्जेक्टिव-सी करने के लिए bridgeToObjectiveC()
अन्य दो स्पष्ट रूप से एक का उपयोग कर शामिल है NSString
और अंतिम एक कास्टिंग शामिल है String
एक करने के लिएNSString
पाटने से, आपको मिलेगा:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
स्ट्रिंग को स्पष्ट रूप से टाइप करके NSString
, आपको मिलेगा:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
यदि आपके पास कोई मौजूदा है String
, तो आप NSString (स्ट्रिंग :) का उपयोग करके उससे एनएसएसट्रिंग को इनिशियलाइज़ कर सकते हैं:
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
और अंत में, आप मौजूदा String
को NSString
नीचे के रूप में डाल सकते हैं
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}