Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ios中生成UUID_Ios_Objective C - Fatal编程技术网

如何在ios中生成UUID

如何在ios中生成UUID,ios,objective-c,Ios,Objective C,如何在objective c中获得UUID,如Java中,UUID用于生成表示128位值的唯一随机数。尝试: CFUUIDRef udid = CFUUIDCreate(NULL); NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid); 更新: 从iOS 6开始。和往常一样,有多种方法可以做到这一点: 创建UUID字符串: NSString *uuid = [[NSUUID UUID] UUIDString];

如何在objective c中获得UUID,如Java中,UUID用于生成表示128位值的唯一随机数。

尝试:

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

从iOS 6开始。和往常一样,有多种方法可以做到这一点:

创建UUID字符串:

NSString *uuid = [[NSUUID UUID] UUIDString];
创建UUID:

[NSUUID UUID]; // which is the same as..
[[NSUUID] alloc] init]; 
创建类型为
nsconcreteuid
的对象,可以轻松地将其强制转换为
NSString
,如下所示:
BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

文档中的注释:

注意:NSUID类不是通过CoreFoundation的CFUUIDRef免费桥接的。如果需要,使用UUID字符串在CFUUID和NSUID之间转换。不保证两个NSUID对象的指针值具有可比性(与CFUUIDRef相同);使用isEqual:比较两个NSUID实例


您可以对iOS 5或更低版本使用CFUUID,对iOS 6和7使用NSUID。 为了使其更安全,您可以将UUID存储在keychain中

Swift版本的:


对于Swift 5.0,请使用

    let uuidRef = CFUUIDCreate(nil)
    let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
    let uuid = uuidStringRef as String? ?? ""

如果您使用的是iOS 6,那么可以使用nsuid:NSString*uuid=[[nsuid-uuid]UUIDString];在第1行,
CFUUIDRef udid
可能应该是
CFUUIDRef-uuid
,以避免udid(唯一设备标识符)与uuid(通用唯一标识符)的潜在混淆。可能的重复您真的不应该只留下代码而不做解释,不管它有多么简单,不知道你为什么选择我的特别回复来评论一年半后的XD。我不知道它已经有1.5年了。。哦,好吧,不过它确实很管用……)只有代码的答案对社区没有用处。请看
-(NSString*) myUUID()
{
    CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
    CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    NSString *guid = (__bridge NSString *)newUniqueIDString;
    CFRelease(newUniqueIDString);
    CFRelease(newUniqueID);
    return([guid lowercaseString]);
}
let uuid = NSUUID().UUIDString
- (NSString*)generateGUID{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [NSString stringWithFormat:@"%@", string];
}
    let uuidRef = CFUUIDCreate(nil)
    let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
    let uuid = uuidStringRef as String? ?? ""