Ios में UUID कैसे जनरेट करें


80

UUID को वस्तुनिष्ठ c में कैसे प्राप्त करें, जैसे कि Java UUID का उपयोग अद्वितीय यादृच्छिक संख्या उत्पन्न करने के लिए किया जाता है जो 128 बिट मान का प्रतिनिधित्व करता है।


जवाबों:


175

प्रयत्न:

CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);

अपडेट करें:

IOS 6 के रूप में, UUID उत्पन्न करने का एक आसान तरीका है । और हमेशा की तरह, इसे करने के कई तरीके हैं:

UUID स्ट्रिंग बनाएं:

NSString *uuid = [[NSUUID UUID] UUIDString];

UUID बनाएं:

[NSUUID UUID]; // which is the same as..
[[NSUUID] alloc] init]; 

एक प्रकार की वस्तु बनाता है NSConcreteUUIDऔर इसे आसानी से डाला जा सकता है NSString, और इस तरह दिखता है:BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

दस्तावेज़ से नोट:

नोट: NSUUID क्लास को CoreFoundation के CFUUIDRef के साथ टोल-फ्री नहीं किया गया है। जरूरत पड़ने पर CFUUID और NSUUID के बीच कनवर्ट करने के लिए UUID स्ट्रिंग्स का उपयोग करें। दो NSUUID ऑब्जेक्ट्स को पॉइंटर वैल्यू (CFUUIDRef के रूप में) से तुलनीय होने की गारंटी नहीं है; उपयोग isEqual: दो NSUUID उदाहरणों की तुलना करने के लिए।


6
यदि आप iOS 6 का उपयोग कर रहे हैं, तो आप NSUUID: NSString * uuid = [[NSUUID UUID] UUIDString] का उपयोग कर सकते हैं;
एली बर्क

2
लाइन 1 पर, CFUUIDRef udidशायद CFUUIDRef uuidUUID (
यूनीली


6
+ (NSString *)uniqueFileName
{
    CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
    CFRelease(theUniqueString);
    return [(NSString *)string autorelease];
}

आपको वास्तव में स्पष्टीकरण के बिना सिर्फ कोड नहीं छोड़ना चाहिए, चाहे वह कितना भी सीधा हो
सायरन

इर्रर, यह निश्चित नहीं है कि आपने एक साल और डेढ़ बाद के एक्सडी पर टिप्पणी करने के लिए मेरे विशेष उत्तर का चयन क्यों किया।
Bergasms

मुझे एहसास नहीं था कि यह 1.5 साल पुराना है। ओह ठीक है, यह अच्छी तरह से काम करता है .. :)
सायरन

3
-(NSString*) myUUID()
{
    CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
    CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    NSString *guid = (__bridge NSString *)newUniqueIDString;
    CFRelease(newUniqueIDString);
    CFRelease(newUniqueID);
    return([guid lowercaseString]);
}

1

आप iOS 5 या निचले संस्करण के लिए CFUUID और iOS 6 और 7. के लिए NSUUID का उपयोग कर सकते हैं। इसे और अधिक सुरक्षित बनाने के लिए आप अपने UUID को किचेन में स्टोर कर सकते हैं।


0
- (NSString*)generateGUID{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [NSString stringWithFormat:@"%@", string];
}

1
कोड-केवल उत्तर समुदाय के लिए उपयोगी नहीं हैं। कृपया जवाब
जिमहॉकिन्स

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