如何在ios中生成UUID
如何在objective c中获得UUID,如Java中,UUID用于生成表示128位值的唯一随机数。尝试:如何在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];
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? ?? ""