Есть ли способ определить устройство с запущенным приложением. Я хочу различать iPhone
и iPod Touch
, если возможно.
ios
objective-c
iphone
ipod-touch
обкрадывать
источник
источник
Ответы:
Вы можете использовать
UIDevice
класс следующим образом:источник
UI_USER_INTERFACE_IDIOM()
является безопасным для использования в приложениях , которые все еще поддерживают IOS <3.2: это макрос вUIDevice.h
специально записаны по умолчанию , чтобыUIUserInterfaceIdiomPhone
на таких старых версиях IOS.Это обновление для
UIDeviceHardware.m
от ответа выше .источник
NSString
сравненияNSString
-NSDictionary
. Имя для определения без кодовых зависимостей.plist
.Пожалуйста, не стесняйтесь использовать этот класс ( gist @ github )
ОБНОВЛЕНИЕ (14.01.11)
Очевидно, что этот код немного устарел, но он, безусловно, может быть обновлен с помощью кода в этом потоке,
Brian Robbins
который включает аналогичный код с обновленными моделями. Спасибо за поддержку в этой теме.источник
Я использую это в моем приложении. До декабря 2012 г.
источник
#import <sys/sysctl.h>
Последнее обновление - октябрь 2019 года: добавлены iPhone 11 , iPhone 11 Pro , iPhone 11 Pro Max , iPad (7-го поколения)
Предыдущее обновление - март 2019 года: добавлены iPad Air 2019 (3-го поколения), iPad mini 2019 (5-го поколения), iPod Touch 2019 (7-го поколения)
стриж
(Проверено на Swift 5, Swift 4, Swift 3)
Функция ниже возвращает строку с текущим именем устройства.
Вы можете проверить это, используя следующий код:
Objective-C
Я также добавил новые устройства в код Objective-C
Не забудьте импортировать sys / sysctl.h
Вы можете проверить это, используя следующий код:
источник
iPhone7,2
это 6, ноiPhone8,1
6S? они поменялись местами на 6 и 6S?источник
Обновлены строки платформы для
iPad Air 2
иiPad mini 3
:источник
Более пригодный для использования
Вы можете читать свойства с
источник
[[UIScreen mainScreen] scale]
есть ли 2 или нет (для iOS 5+).Вот небольшое обновление с новыми моделями:
источник
Я знаю, что ответ уже отмечен, но для дальнейшего использования вы всегда можете использовать размер экрана устройства, чтобы выяснить, на какое устройство он похож:
источник
Просто добавьте код устройства iPhone 4S в эту ветку ...
IPhone 4S вернет строку @ "iPhone4,1".
источник
Как насчет этого кода, если новая версия была выпущена, вы будете идентифицировать с последним известным устройством
источник
Добавляя к коду Arash, мне не важно, какое приложение я использую для своего приложения, я просто хочу знать, какое устройство, поэтому я могу проверить следующее:
источник
Основываясь на очень хороших ответах выше, вот что я придумал. Это очень похоже на ответ @ Родриго, но учитывает озабоченность @ Оливера из комментария к этому ответу. Это также обеспечивает возможность включения строки модели в выходную строку.
источник
Для меня есть довольно зрелая библиотека ( SDVersion) . Вы можете проверить модель устройства, размер экрана и многие другие параметры. Он также поддерживает OSX.
Пример:
источник
источник
источник
Я пошел немного дальше и преобразовал большой блок «isEqualToString» в классификацию битовых масок для типа устройства, поколения и этого другого классификатора после запятой (я называю это субпоколением). Он заключен в класс с одноэлементным вызовом SGPlatform, который позволяет избежать множества повторяющихся строковых операций. Код доступен https://github.com/danloughney/spookyGroup
Класс позволяет вам делать такие вещи:
а также
Классификация устройств в методе platformBits. Этот метод должен быть очень знаком читателям этой темы. Я классифицировал устройства по типу и поколению, потому что меня больше всего интересует общая производительность, но источник может быть настроен для предоставления любой интересующей вас классификации, экрана сетчатки, сетевых возможностей и т. Д.
источник
Ниже приведенный фрагмент кода должен помочь:
источник
источник
Dutchie432
иBrian Robbins
предоставили отличные решения. Но все еще отсутствует одна модель, iPhone 4 Verizon . Вот недостающая строка.источник
Мне нравятся вещи Эрики Садун. Она включает в себя устройства AppleTV и другие устройства, о которых вы можете и не подумать.
https://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.h
источник
Возможные долины
являются
iPod touch
,iPhone
,iPhone Simulator
,iPad
,iPad Simulator
Если вы хотите знать, на каком аппаратном обеспечении
iOS
происходит сбойiPhone3
,iPhone4
иiPhone5
т.д., ниже приведен код для этогоПРИМЕЧАНИЕ: приведенный ниже код может содержать не все строки устройства, я с другими парнями поддерживаю тот же код на GitHub поэтому, пожалуйста, берите последнюю версию кода оттуда
Objective-C : GitHub / DeviceUtil
Swift : GitHub / DeviceGuru
источник
Ответ в Свифте 3,
источник
Для простого сравнения мне всегда нравится макрос:
Это просто и легко в использовании.
источник
Я хотел бы добавить, что для извлечения цвета передней панели и корпуса устройства есть частный API:
Я написал об этом в блоге и предоставил пример приложения:
http://www.futuretap.com/blog/device-colors/
источник
Я могу заверить, что предложенный выше вариант будет работать в iOS 7 и выше. Я верю, что это будет работать и в iOS 6. Но я не уверен в этом.
источник
Вы можете проверить GBDeviceInfo на GitHub, также доступном через CocoaPods. Он предоставляет простой API для обнаружения различных свойств с поддержкой всех последних устройств:
[GBDeviceInfo deviceDetails].family == GBDeviceFamilyiPhone;
[GBDeviceInfo deviceDetails].model == GBDeviceModeliPhone6.
Для получения дополнительной информации см. Readme .
источник
Чтобы определить iPhone 4S, просто проверьте следующее:
источник
Я создал расширение, которое позволяет вам иметь 3 уровня идентификации:
Обновление с последними устройствами iOS
UIDeviceDetector
источник