3

どの iOS デバイスが現在アプリを実行しているかを知る必要があります (より正確に言うと、デバイス armv6 または armv7 を知る必要があります)。UIUserInterfaceIdiomPad() は、デバイスが iPhone4S または iPhone3G であることを確認できませんでした。出来ますか?

4

2 に答える 2

11

https://github.com/erica/uidevice-extension (UIDevice-Hardware クラス) をダウンロードすると、これらを使用できます。

[UIDevice currentDevice] platformType]   // returns UIDevice4GiPhone
[[UIDevice currentDevice] platformString] // returns @"iPhone 4G"

または、その網膜かどうかを確認します

+ (BOOL) isRetina
{
    if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
        return [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;

    return NO;
}

またはiOSのバージョンを確認してください

+ (BOOL) isIOS5
{
    NSString *os5 = @"5.0";
    NSString *currSysVer = [[UIDevice currentDevice] systemVersion];

    //    currSysVer = @"5.0.1";
    if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedAscending) //lower than 4
    {
        return NO;
    }
    else if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedDescending) //5.0.1 and above
    {        
        return YES;
    }
    else // IOS 5
    {
        return YES;
    }

    return NO;
}
于 2012-06-18T11:34:35.430 に答える
1

arm6 と arm7 のどちらで実行しているか (実行時に) 本当に知りたい場合は、" NXGetArchInfoFromCPUType" を使用できます (詳細については、この質問に対する受け入れられた回答を参照してください)。

それ以外の場合は、信じられないほど迅速に回答する友人の Omar が提案したように (そして彼に +1!)、platformType または platformString を使用できます。

于 2012-06-18T11:35:36.870 に答える