ios - स्विफ्ट-किस प्रकार का उपयोग करना है? एनएसएसटींग या स्ट्रिंग




objective-c string (5)

स्विफ्ट 4 अपडेट

स्ट्रिंग को स्विफ्ट 4 में संशोधन मिलते हैं। अब आप सीधे उस पर गिनती कर सकते हैं और यह ग्रामहेम क्लस्टर को 1 टुकड़ा, इमोजी की तरह मानते हैं। एनएसएसटींग अद्यतन नहीं है और इसे किसी अन्य तरीके से गिन रहा है।

var nsstring: NSString = "👩‍👩‍👧‍👦"
var string: String = "👩‍👩‍👧‍👦"

print(nsstring.length) // 11
print(string.count)    // 1

स्विफ्ट की शुरूआत के साथ मैं नई भाषा के चारों ओर अपना सिर लेने की कोशिश कर रहा हूं

मैं एक आईओएस डेवलपर हूं और एप्लिकेशन में NSString, NSInteger, NSDictionary जैसे प्रकारों का उपयोग करूंगा। मैंने देखा है कि ऐप्पल द्वारा "स्विफ्ट प्रोग्रामिंग लैंग्वेज" ईबुक में, वे स्विफ्ट प्रकार String, Int, Dictionary

मैंने देखा है कि स्विफ्ट प्रकारों में फाउंडेशन प्रकारों के कुछ फ़ंक्शंस नहीं हैं (या अलग-अलग नाम हैं)। उदाहरण के लिए NSString की length है। लेकिन मैं स्विफ्ट String लिए एक समान नहीं ढूंढ पाया।

मैं सोच रहा हूं, आईओएस एप्लिकेशन के लिए मुझे अभी भी फाउंडेशन प्रकारों का उपयोग करना चाहिए?


NSString: ऑब्जेक्ट बनाता है जो ढेर में रहता है और हमेशा संदर्भ द्वारा पारित किया जाता है।

स्ट्रिंग: जब भी हम इसे पास करते हैं, इसका मूल्य मान होता है, यह मूल्य से गुजरता है। स्ट्रक्चर एंड एनम की तरह। लेकिन जब आप पास करते हैं तो कॉपी नहीं बनाई जाती है। जब आप इसे पहले म्यूट करते हैं तो यह कॉपी बनाता है। अधिक जानकारी के लिए कृपया सेब दस्तावेज़ देखें


चूंकि उद्देश्य सी प्रकार अभी भी गतिशील रूप से प्रेषित हैं, इसलिए वे शायद धीमे होने जा रहे हैं। मैं कहूंगा कि स्विफ्ट देशी प्रकारों का उपयोग करके आपको सबसे अच्छी सेवा दी जाती है जब तक कि आपको उद्देश्य-सी एपीआई के साथ बातचीत करने की आवश्यकता न हो


जब भी आप कर सकते हैं स्विफ्ट मूल प्रकार का उपयोग करें। स्ट्रिंग के मामले में, हालांकि, आपके पास इस तरह की सभी NSString विधियों तक "निर्बाध" पहुंच है:

var greeting = "Hello!"
var len = (greeting as NSString).length

String और NSString अदला- NSString कर रहे हैं, इसलिए इससे कोई फर्क नहीं पड़ता कि आप किस का उपयोग करते हैं। आप हमेशा इस्तेमाल करने के बीच दोनों के बीच कास्ट कर सकते हैं

let s = "hello" as NSString

या और भी

let s: NSString  = "hello"

NSInteger एक int या long (आर्किटेक्चर के आधार पर) के लिए सिर्फ एक उपनाम है, इसलिए मैं केवल Int उपयोग करता हूं।

NSDictionary एक अलग मामला है, क्योंकि Dictionary एक पूरी तरह से अलग कार्यान्वयन है।

आम तौर पर जब भी संभव हो तो मैं तेज़ प्रकारों के साथ चिपक जाता हूं और आप तेजी से कक्षाओं द्वारा प्रदान की गई bridgeToObjectiveC() विधि का उपयोग करके, दोनों को हमेशा आवश्यकता के बीच परिवर्तित कर सकते हैं।





swift