Determine device (iPhone, iPod Touch) with iOS

后端 未结 30 2154
礼貌的吻别
礼貌的吻别 2020-11-21 11:29

Is there a way to determine the device running an application. I want to distinguish between iPhone and iPod Touch, if possible.

30条回答
  •  失恋的感觉
    2020-11-21 12:05

    I took it a bit further and converted the big "isEqualToString" block into a classification of bit masks for the device type, the generation, and that other qualifier after the comma (I'm calling it the sub generation). It is wrapped in a class with a singleton call SGPlatform which avoids a lot of repetitive string operations. Code is available https://github.com/danloughney/spookyGroup

    The class lets you do things like this:

    if ([SGPlatform iPad] && [SGPlatform generation] > 3) {
        // set for high performance
    }
    

    and

    switch ([SGPlatform deviceMask]) {
    case DEVICE_IPHONE:
        break;
    case DEVICE_IPAD:
        break;
    case DEVICE_IPAD_MINI:
        break;
    }
    

    The classification of the devices is in the platformBits method. That method should be very familiar to the readers of this thread. I have classified the devices by their type and generation because I'm mostly interested in the overall performance, but the source can be tweaked to provide any classification that you are interested in, retina screen, networking capabilities, etc..

提交回复
热议问题