라이트 버전을 배포하거나 할 때
기기 고유의 값이 필요할 때가 있다.
- ios5이전에서는
[[UIDevice currentDevice] uniqueIdentifier];
를 사용하면 되었으나 ios5이후 deprecated되었다.
- 이를 대체하기 위해서 apple은 uuid를 제공한다.
이를 사용하기 위해서는
CFUUIDRef uuid=CFUUIDCreate(kCFAllocatorDefault);
CFStringRef UUIDRef=CFUUIDCreateString(kCFAllocatorDefault, uuid);
NSString* string=[NSString stringWithString:(NSString*)UUIDRef];
CFRelease(uuid);
CFRelease(UUIDRef);
위와 같이 string으로 uuid를 받아오면 되지만
생성할 때 마다 계속 다른 값이 나온다.
따라서 이를 방지하기 위해 NSUserDefaults를 이용하여 초기값을 저장하고
값이 있으면 값을 불러오고, 값이 없으면 값을 생성하는 코드를 추가한다.
if([[NSUserDefaults standardUserDefaults]stringForKey:@"uuid"]==NULL) //값이 없으면
{
//uuid받아오기
CFUUIDRef uuid=CFUUIDCreate(kCFAllocatorDefault);
CFStringRef UUIDRef=CFUUIDCreateString(kCFAllocatorDefault, uuid);
NSString* string=[NSString stringWithString:(NSString*)UUIDRef];
CFRelease(uuid);
CFRelease(UUIDRef);
//uuid값 string으로 저장
[[NSUserDefaults standardUserDefaults]setObject:string forKey:@"uuid"];
}
NSString* string=[[NSUserDefaults standardUserDefaults]stringForKey:@"uuid"];//저장한 값 받아오기
후에 stirng변수를 사용하면 된다.
- iOS6이후에 고유한 값을 사용하고 싶다면
NSString* string = (NSString*) [[UIDevice currentDevice] identifierForVendor];
를 통해서 값을 얻어오면 된다.
'프로그래밍 > iOS' 카테고리의 다른 글
[Mac] 원격접속 프로그램 (0) | 2015.04.08 |
---|---|
[ios] 링크 에러 (0) | 2015.04.08 |
[ios]Empty프로젝트에서 main.m파일만으로 헬로월드 찍기 (0) | 2015.04.08 |
[ios]화면 기울기에 따라 스크롤 하기(가속도계 이용) (0) | 2015.04.08 |
[iOS] 아이패드, 아이폰 카메라 UI 고정하기 (0) | 2015.04.08 |