Как сказать, если ваш код работает на iPhone или iPhone3G?

голоса
22

Я пытаюсь определить, если мой код работает на iPhone или iPhone3G. Моя первая попытка была использовать класс UIDevice в UIKit, но как iPhone и iPhone возвращают те же ответы:

NSLog([[UIDevice currentDevice] name]); // Name of the phone as named by user
NSLog([[UIDevice currentDevice] uniqueIdentifier]); // A GUID like string
NSLog([[UIDevice currentDevice] systemName]); // iPhone OS 
NSLog([[UIDevice currentDevice] systemVersion]); // 2.2.1
NSLog([[UIDevice currentDevice] model]); // iPhone on both devices
NSLog([[UIDevice currentDevice] localizedModel]); // iPhone on both devices

Это единственные параметры, которые UIDevice позволяет запросить.

Я посмотрел немного в Framework Foundation, но пока не нашли соответствующие вызовы.

Я уверен, что есть некоторая часть оборудования, я мог бы запросить (например, как-то в месте службы), но это, кажется, как взломать. Кто-нибудь знает просто способ определения этого?

Задан 27/03/2009 в 01:01
источник пользователем
На других языках...                            


3 ответов

голоса
21

IPhone работает OS X. Вот как определить аппаратную платформу на рабочем столе Macintosh. Вот как на iPhone. Это та же самая точная вещь.

Короче говоря, sysctlbyname("hw.machine", str, sz, 0, 0)напишут название платформы в str. Это происходит с «iPhone1,1» или «iPhone1,2» для iPhone и iPhone 3G соответственно.

Ответил 27/03/2009 в 02:19
источник пользователем

голоса
6

Я не разработчик iPhone, но для проверки базовой платформы вместо возможностей платформы почти всегда неправильный выбор. Если iPhone получает необходимую функциональность, вы все равно не работать. Там также шанс, что вы будете делать неправильное решение о следующем iPhone 4.0 (или что-то, что называется).

Ответил 27/03/2009 в 01:43
источник пользователем

голоса
0

Я думаю, что есть функциональность на iPhone, который не на iPhon3G, что ваше программное обеспечение занимается. Мое предложение является запрос о том, что конкретном оборудовании вместо изменения поведения программного обеспечения на основе платформы.

Например. вместо проверки для Доступность GPS, задавая является ли это iPhone или iPhone3G запрос о доступности GPS и идти оттуда. Таким образом, ваш код будет работать на любой платформе (iphone / Ipod Touch / iphone 3G)

Ответил 27/03/2009 в 01:49
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more