2014-02-12 1 views
19

NSString 형식의 전화에서 deviceUUID를 가져와야합니다. 지금 나는이 있습니다NSUUID to NSString

NSString *deviceId = [UIDevice currentDevice].identifierForVendor; 

때문에 나는이었다 전에 무엇을했다 :

NSString *deviceId = [UIDevice currentDevice].uniqueIdentifier; 

지금 나에게 오류를 제공합니다.

그러나 첫 문장으로, 내가 경고 있어요 :

Incompatible pointer types initializing 'NSString *' with an expression of type 'NSUUID *' 

답변

59

으로 identifierForVendor 클래스 NSUUID의 객체를 반환하지 않는있는 NSString.

당신은있는 NSString이 사용해야하는 경우 :

NSUUID().UUIDString 

스위프트

ObjC

NSString *uuid = [[NSUUID UUID] UUIDString]; 

스위프트는 NSString에 NSUUID를 변환하는 방법을 찾고 누군가를 위해

NSUUID *identifierForVendor = [[UIDevice currentDevice] identifierForVendor]; 
NSString *deviceId = [identifierForVendor UUIDString]; 
+0

정답을 알려줘서 고마워. 내 코드로 확인해 봤어. deviceID .. 말해 줄 수있어? 내 코드는 어디에 유용합니까? – iPatel

+0

고마워, 지금 일했다. 이전 버전에서는 오류가 없었지만 테스트하기 전에 편집을 보았습니다. 고맙습니다. – Biribu

+0

@iPatel 다른 UUID가 필요한 경우 코드가 유용합니다. 예를 들어 디스크에 파일을 저장하고 고유 한 파일 이름이 필요한 경우를 예로들 수 있습니다. –

1

EDITE : 내 삭제 대답을 다시 내가 마티아스의 대답 @ 여기 을 언급 영업 이익의 요구 사항이 정확한지 로를 다음 코드를 사용하면이 코드를 실행할 때마다 매번 새로운 device_id를 얻습니다. 다음 코드

사용 : 오류를 알려줍니다

CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault); 
NSString *uuidString = (NSString *)CFBridgingRelease(CFUUIDCreateString(NULL,uuidRef)); 
CFRelease(uuidRef); 
NSLog(@"%@", uuidString); 
+0

광산 대신이 선들을 사용해야합니까? – Biribu

+0

그냥 내 코드를 사용해보십시오. 내 프로젝트에서 deviceUUID를 가져올 때마다이 코드를 넣습니다. – iPatel

+1

@Biribu ** 아니요 ** 이것은 완전히 다른 것을합니다. 이렇게하면 호출 할 때마다 새로운 UUID가 작성됩니다. –