【问题标题】:How to identify ipad 1 and ipad 2 individually at runtime [duplicate]如何在运行时分别识别 ipad 1 和 ipad 2 [重复]
【发布时间】:2012-01-16 03:48:48
【问题描述】:

可能重复:
Determine device (iPhone, iPod Touch) with iPhone SDK
iPad 2 detection

请指导我如何在真实设备上运行时检测 ipad 和 ipad 2。由于性能问题,我想将不同的图像加载到这两款手机。

提前致谢

【问题讨论】:

    标签: iphone ipad cocos2d-iphone ipad-2


    【解决方案1】:

    最简单快捷的方法是检查摄像头,如iPad 2 detection 所述:

    BOOL isIPad2 = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad &&
                [UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]);
    

    甚至更简单: BOOL isiPad2 = [[self platform] isEqualToString:@"iPad2,1"]; 请记住,字符串也可以是iPad2,2iPad2,3

    【讨论】:

      【解决方案2】:
      - (NSString *)machine {
          size_t size;
          sysctlbyname("hw.machine", NULL, &size, NULL, 0);
          char *machine = malloc(size);
          sysctlbyname("hw.machine", machine, &size, NULL, 0);
          NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
          free(machine);
          return platform;
      }
      
      • iPad 1:@“iPad1,1”
      • iPad 2:@“iPad2,1”

      【讨论】:

      • 感谢 Niko .. 它可以工作 :),但在我为 IPAD 2 阅读的某个地方,有时您可以获得 iPad2,1 或 iPad2,2 或 iPad2,3(取决于运营商)。知道我需要为 iPad 和 iPad 2 检查什么样的不同字符串
      • 如果是这样,你可以检查 iPad2,x 字符串这样做: NSRange range = [theMachineString rangeOfString:@"iPad2" options:(NSAnchoredSearch | NSCaseInsensitiveSearch]]; if (range.length > 0) {NSLog(@"我是 iPad2");}
      猜你喜欢
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多