已弃用的 Xcode 问题



im 收到以下代码的错误和警告:

  1. 在第一个 if 语句中警告未声明的选择器唯一标识符;
  2. 错误属性唯一标识符在 UIDevice 类型的对象上找不到
  3. C 指针类型 CFStringRef 的错误转换

获取用户设备型号、显示名称、唯一 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"];
    }
}

UIDevice uniqueIdentifier属性在 iOS 5 及更高版本中已弃用

    udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    NSLog(@"UDID : %@", udid);
  1. 必须创建具有名称 uniqueIdentifier 的方法
  2. UIDevice 没有一个名为 uniqueIdentifier 的属性。看到这个答案。
  3. 看看这个答案。

最新更新