Как определить устройство iOS программно

Мне нужно знать, на каком устройстве iOS в данный момент работает приложение (точнее говоря, мне нужно знать устройство armv6 или armv7). UIUserInterfaceIdiomPad () не может проверить это устройство iPhone4S или iPhone3G. Является ли это возможным?

 medvedNick18 июн. 2012 г., 13:45
Я добавил некоторые функции в свой проект, и это вызывает сбои на устройствах armv6 (iPhone3G). Я знаю, что проблема в архитектуре процессора, но пока не могу понять, как ее решить. Поэтому я решил сделать переключатель, который отключает эту функцию на старых устройствах, в то время как я пытаюсь заставить приложение работать на всех устройствах.
 Nick Bull18 июн. 2012 г., 13:34
Просто из любопытства, зачем вам знать, что это - armv6 или armv7?

Ответы на вопрос(2)

Решение Вопроса

Скачать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;
}
 18 июн. 2012 г., 14:04
ой да извините моя ошибка :)
 medvedNick18 июн. 2012 г., 13:39
Спасибо! это и ответ @Michael Dautermann именно то, что мне нужно!
 medvedNick18 июн. 2012 г., 14:03
хм, вы не сказали, что -platformString - это категория дляthere ;)
 06 июл. 2012 г., 05:09
Отменил мой -1 и отредактировал ваше сообщение, чтобы разместить URL вверху с блоком кода (более полезно с первого взгляда).
 01 июл. 2012 г., 07:36
-1 [[UIDevice currentDevice] platformString] не работал для меня.

Если вы действительно хотите знать (во время выполнения), работаете ли вы на arm6 или arm7, вы можете использовать & quot;NXGetArchInfoFromCPUType& Quot; (гораздо больше подробностей доступно в принятом ответе на этот вопрос).

В противном случае вы можете использовать platformType или platformString, как предложил наш невероятно быстро отвечающий друг Омар (и +1 к нему!).

 18 июн. 2012 г., 13:42
@MichaelDautermann Я хотел бы достичь 10K, спасибо за поддержку :), medvedNick, пожалуйста
 medvedNick18 июн. 2012 г., 13:40
спасибо за ссылку, это будет очень полезно! и вы оба быстро отвечаете, кстати
 18 июн. 2012 г., 13:37
хе-хе агрессивный? мне? Зачем?
 18 июн. 2012 г., 13:38
я сказал агрессивный? то, что я имел в виду, было: «Черт, ты очень быстро отвечаешь». Возможно, еще месяц или около того, и вы меня догоняете по баллам.

Ваш ответ на вопрос