문제

.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를 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top