弃用的Xcode问题

时间:2014-01-15 19:30:09

标签: objective-c ios7

使用以下代码获取错误和警告:

  1. 在第一个if语句处警告未声明的选择器uniqueIdentifier;
  2. 在UIDevice类型的对象上找不到错误属性uniqueIdentifier
  3. C指针类型CFStringRef的错误转换
  4. //获取用户设备型号,显示名称,唯一ID,令牌和版本号

    UIDevice *dev = [UIDevice currentDevice];
    NSString *deviceUuid;
    if ([dev respondsToSelector:@selector(uniqueIdentifier)]) // Warning #1
        deviceUuid = dev.uniqueIdentifier; // Error #1
    else {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        id uuid = [defaults objectForKey:@"deviceUuid"];
        if (uuid)
            deviceUuid = (NSString *)uuid;
        else {
            CFStringRef cfUuid = CFUUIDCreateString(NULL, CFUUIDCreate(NULL));
            deviceUuid = (NSString *)cfUuid; // Error #2
            CFRelease(cfUuid);
            [defaults setObject:deviceUuid forKey:@"deviceUuid"];
        }
    }
    

2 个答案:

答案 0 :(得分:2)

iOS 5及以上版本中不推荐使用UIDevice uniqueIdentifier属性

    udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    NSLog(@"UDID : %@", udid);

答案 1 :(得分:0)

  1. 您必须创建名为uniqueIdentifier
  2. 的方法
  3. UIDevice没有名为uniqueIdentifier的属性。见answer
  4. 看看这个answer