现在的位置: 首页 > 综合 > 正文

iOS 替代UDID解决方案--UUID

2018年02月13日 ⁄ 综合 ⁄ 共 1614字 ⁄ 字号 评论关闭

[plain] view
plain
copy

  1. #import <Foundation/Foundation.h>  
  2.   
  3. @interface UUID : NSObject  
  4. {}  
  5. @property (nonatomic, readonly, retain) NSString *UUIDString;  
  6.   
  7. + (UUID *)sharedUUID;  
  8.   
  9. @end  

[plain] view
plain
copy

  1. #import "UUID.h"  
  2.   
  3. #define UUID_KEY (@"MobileUUID")  
  4.   
  5. static UUID *_sharedUUID = nil;  
  6.   
  7. @implementation UUID  
  8. @synthesize UUIDString = _UUIDString;  
  9.   
  10. + (UUID *)sharedUUID;  
  11. {  
  12.     @synchronized(self)  
  13.     {  
  14.         if(_sharedUUID == nil)  
  15.         {  
  16.             _sharedUUID = [[UUID alloc] init];  
  17.         }  
  18.     }  
  19.     return _sharedUUID;  
  20. }  
  21.   
  22. - (id)init  
  23. {  
  24.     if((self = [super init]))  
  25.     {  
  26.     }  
  27.     return self;  
  28. }  
  29.   
  30. #pragma mark -  
  31. #pragma mark UUIDString  
  32. - (NSString *)UUIDString  
  33. {  
  34.     NSString *uuidString = [[NSUserDefaults standardUserDefaults] objectForKey:UUID_KEY];  
  35.       
  36.     if(uuidString && [uuidString length])  
  37.     {  
  38.         return uuidString;  
  39.     }  
  40.     else  
  41.     {     
  42.         CFUUIDRef uuidRef = CFUUIDCreate(nil);  
  43.         CFStringRef stringRef = CFUUIDCreateString(nil, uuidRef);  
  44.         uuidString = (NSString *)CFStringCreateCopy(nil, stringRef);  
  45.         CFRelease(uuidRef);  
  46.         CFRelease(stringRef);  
  47.           
  48.         [[NSUserDefaults standardUserDefaults] setObject:uuidString forKey:UUID_KEY];  
  49.         [[NSUserDefaults standardUserDefaults] synchronize];  
  50.           
  51.          return [uuidString autorelease];  
  52.     }  
  53.       
  54.     return nil;  
  55. }  
  56.   
  57. #pragma mark -  
  58. #pragma mark dealloc  
  59. - (void)dealloc  
  60. {  
  61.     [_UUIDString release];  
  62.     [_sharedUUID release];  
  63.       
  64.     [super dealloc];  
  65. }  
  66. @end  

转自:http://blog.csdn.net/lixuwen521/article/details/8894321

抱歉!评论已关闭.