MAC에서 표준 128 비트 안내서 (UUID)를 생성하는 방법이 있습니까?
-
08-07-2019 - |
문제
.NET의 내장 기능이 있습니까?
Guid.NewGuid();
코코아에서?
나의 소망은 550e8400-e29b-41d4-a716-446655440000
이는 고유 식별자를 나타냅니다.
해결책
UUID는 CFUUID 라이브러리에 의해 Core Foundation에서 처리됩니다. 당신이 찾고있는 기능은입니다 cfuuidcreate.
추가 검색을위한 참고로 : 이들은 가장 일반적으로 UUID로 알려져 있으며, Guid라는 용어는 Microsoft 세계 밖에서 자주 사용되지 않습니다. 그 검색어에 더 많은 운이있을 수 있습니다.
다른 팁
일부 코드 :
문자열 uuid의 경우 다음 클래스 방법이 트릭을 수행해야합니다.
+(NSString*)UUIDString {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
바이트를 정말로 원한다면 (문자열이 아님) :
+(CFUUIDBytes)UUIDBytes {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFUUIDBytes bytes = CFUUIDGetUUIDBytes(theUUID);
CFRelease(theUUID);
return bytes;
}
여기서 cfuuidbytes는 a 구조 UUID 바이트의.
적어도 MacOSX 10.5.x에서는 명령 줄 도구 "uuidgen"을 사용하여 문자열을 얻을 수 있습니다.
$ uuidgen
054209C4-3873-4679-8104-3C18AE780512
이 comand와 함께 옵션이있어 헤더 스타일로 편리하게 생성합니다.
추가 정보는 Man-Page를 참조하십시오.
아니면 uuidgen
명령 줄 도구.
10.8 이후로 당신은 또한 사용할 수 있습니다 : nsstring *uuidstring = [[nsuuid uuid] uuidstring];
10.3 정도 이후로 사용할 수 있습니다 [[NSProcessInfo processInfo] globallyUniqueString]
. 그러나,이 동안 현재 UUID를 생성하면 결코 그렇게하지 않았으며 여전히 보장되지 않으므로 실제로 필요하다면 uuid 고유 한 문자열뿐만 아니라 cfuuid를 사용해야합니다.