iOS

[iOS] UUID를 이용하여 고유값 사용하기

박진만 2013. 4. 29. 17:09
반응형

UDID 를 사용하면 간단하게 고유값을 활용할 수 있지만 ios5.1 부터 쓰지말라고 apple 에서 협박함 ㅠㅠ

무시하고 쓰다가 어느순간 reject 당할지 모르니 UUID 를 쓰기로 함

UDID 는 기기별로 고유한 값이므로 절대(?) 변하지 않으므로 활용하기 참 편한데 쓰지말라고 하니 뭐 ㅠㅠ

UUID 는 랜덤하게 고유값을 생성해주는 거..생성할때마다 매번 다른값이 나옴..

필요할때마다 매번 생성하면 단말기 고유값의 의미가 없어지므로 초기에 한번 생성하여 단말기에 저장하여 사용

//유니크아이디 생성 후 로컬에 저장 한번 생성 후 값 있으면 더이상 생성안함

    if([[NSUserDefaults standardUserDefaults] stringForKey: @"uuid"] == NULL){

        CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);

        NSString *string = (NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuid);

        [[NSUserDefaults standardUserDefaults] setObject:string forKey: @"uuid"];

    }

    NSString *uniqueid = [[NSUserDefaults standardUserDefaults] stringForKey: @"uuid"];

    NSLog(@"uuid : %@", uniqueid);

요렇게 코딩해서 사용하면 됨

UUID 는 앱 업데이트나 앱 삭제 후 재 설치시 새로 발급되므로 참고하세요!!

iOS6 부터 이런 단점을 개선했다고 합니다. 

UIDevice 클래스에 identifierForVendor 라는 프로퍼티를 활용하면 된다네요

반응형