स्विफ्ट से iOS पर UUID जेनरेट करें


296

अपने iOS स्विफ्ट ऐप्लिकेशन में मैं यादृच्छिक UUID (उत्पन्न करना चाहते GUID ) एक मेज कुंजी के रूप में उपयोग के लिए तार, और इस स्निपेट प्रकट होता है काम करने के लिए:

let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil))

क्या यह सुरक्षित है?

या शायद एक बेहतर (अनुशंसित) दृष्टिकोण है?


5
आप लेट यूयूआईडी = एनएसयूयूआईडी.यूयूआईडी () का उपयोग कर सकते हैं। यूयूआईडीस्टोरिंग
यथाशी बीएल

पर एक नजर डालें stackoverflow.com/questions/3773776/...
Yatheesha बीएल

1
अपने संपादन के बजाय, कृपया किसी एक उत्तर को स्वीकार करें। चूंकि आप इसे @AhemdAlHafoudh प्रस्तावित कर रहे हैं, इसलिए मैं आपको उनके उत्तर को स्वीकार करने का सुझाव देता हूं।
DarkDust

आह, समझ गया। धन्यवाद ... हो गया।
zacjordaan

जवाबों:


627

इसको आजमाओ:

let uuid = NSUUID().uuidString
print(uuid)

स्विफ्ट 3/4/5

let uuid = UUID().uuidString
print(uuid)

6
XCode 6.1 में, मुझे यह त्रुटि मिली: 'UUID ()' का उपयोग करने योग्य है: ऑब्जेक्ट निर्माण 'NSUUID ()' का उपयोग करें। हमें इसे NSUUID () में बदलना चाहिए। UUIDString
ohyes

उपरोक्त सुझाव कॉलिंग से अलग नहीं है NSUUID.init().UUIDString, है ना?
काइल रेडफर्न

4
Xcode 8 (बीटा), iOS 10 और स्विफ्ट 3 के रूप में, इसका नाम बदलकरUUID().uuidString
califrench

इसे उत्तर में जोड़ने के लिए मन?
अहमद अल हफौद

1
नमस्ते, मैंने इस विधि का उपयोग किया UUID ()। UuidString लेकिन यह मुझे उपयोग करने वाले प्रत्येक स्ट्रिंग को अलग-अलग वापस करने के लिए लगता है, मैं चाहता हूं कि यह केवल उस ऐप के लिए 1 मान हो जो मैं स्थापित करता हूं। कोई अंतर्दृष्टि?
नेरेज़ा

28

आप बस NSUUID API का उपयोग कर सकते हैं :

let uuid = NSUUID()

यदि आप स्ट्रिंग मान वापस प्राप्त करना चाहते हैं, तो आप उपयोग कर सकते हैं uuid.UUIDString

ध्यान दें कि NSUUIDiOS 6 और ऊपर से उपलब्ध है।



13

स्विफ्ट 3 के लिए, कई Foundationप्रकारों ने 'एनएस' उपसर्ग को गिरा दिया है, इसलिए आप इसे एक्सेस करेंगे UUID().uuidString


8

इसके अलावा आप canइसे lowercaseनीचे के तहत उपयोग करते हैं

let uuid = NSUUID().UUIDString.lowercaseString
print(uuid)

उत्पादन

68b696d7-320b-4402-a412-d9cee10fc6a3

धन्यवाद !


1
धन्यवाद। अब यह हैNSUUID().uuidString.lowercased()
पैट्रिक ड्यूरा

4
इस तरह से लोअरकेस का उपयोग करने का क्या लाभ है?
ल्यूक स्टैनर

शायद यह अपरकेस से ज्यादा आंख को भाता है?
tgunr

5

हर बार एक ही उत्पन्न होगा:

if let uuid = UIDevice.current.identifierForVendor?.uuidString {
    print(uuid)
}

हर बार एक नया जनरेट किया जाएगा:

let uuid = UUID().uuidString
print(uuid)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.