Swift에서 iOS에 UUID 생성


296

내 iOS Swift 앱 에서 테이블 키로 사용할 임의의 UUID ( GUID ) 문자열 을 생성하려고 하는데이 코드 조각 작동하는 것으로 보입니다 .

let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil))

안전한가요?

아니면 더 나은 (권장) 접근 방식이 있습니까?


5
또한 UUID = NSUUID.UUID () 할 수 있습니다 UUIDString.
Yatheesha BL


1
수정하는 대신 답변 중 하나를 수락하십시오. @AhemdAlHafoudh가 제안한 방식으로하고 있기 때문에 그의 답변을 수락하는 것이 좋습니다.
DarkDust

아, 알았다 고마워 ... 끝났어
zacjordaan

답변:


627

이거 한번 해봐:

let uuid = NSUUID().uuidString
print(uuid)

스위프트 3/4/5

let uuid = UUID().uuidString
print(uuid)

6
XCode 6.1에서 'UUID ()'를 사용할 수 없습니다. 객체 생성 'NSUUID ()'를 사용할 수 없습니다. 우리는 이것을 NSUUID ()로 변경해야합니다. UUIDString
ohyes

위의 제안은을 부르는 것과 다르지 않습니다 NSUUID.init().UUIDString.
Kyle Redfearn

4
Xcode 8 (베타), iOS 10 및 Swift 3에서 이름이 다음과 같이 바뀌 었습니다.UUID().uuidString
califrench

이것을 대답에 추가 하시겠습니까?
Ahmed Al Hafoudh

1
안녕하세요,이 방법 UUID (). uuidString을 사용했지만 매번 사용할 때마다 다른 문자열을 반환하는 것 같습니다. 설치하는 앱의 경우에만 1 값이되고 싶습니다. 통찰력이 있습니까?
nerezza

28

NSUUID API를 사용할 수도 있습니다 .

let uuid = NSUUID()

문자열 값을 되돌리려면을 사용할 수 있습니다 uuid.UUIDString.

참고 NSUUID아이폰 OS 6까지에서 사용할 수 있습니다.


18

대한 스위프트 4 ;

let uuid = NSUUID().uuidString.lowercased()

3
묘지 nitpick 여기에 있지만 왜 소문자 UUID가 일반 UUID보다 선호되는지 모르겠습니다.
Alex Kornhauser 2

13

Swift 3의 경우 많은 Foundation유형이 'NS'접두사를 삭제 했으므로로 액세스 할 수 있습니다 UUID().uuidString.


8

또한 아래에서 can사용하십시오.lowercase

let uuid = NSUUID().UUIDString.lowercaseString
print(uuid)

산출

68b696d7-320b-4402-a412-d9cee10fc6a3

감사합니다 !


1
감사. 지금NSUUID().uuidString.lowercased()
Patrick Dura

4
이와 같이 소문자를 사용하면 어떤 이점이 있습니까?
Luke Stanyer

어쩌면 대문자보다 눈이 더 즐겁습니까?
tgunr

5

매번 동일하게 생성됩니다 :

if let uuid = UIDevice.current.identifierForVendor?.uuidString {
    print(uuid)
}

새로운 것이 생성 될 때마다 :

let uuid = UUID().uuidString
print(uuid)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.