как определить цвет iphone 5c?

<p>после анонса iphone 5c мне интересно, если кто-нибудь знает api, как получить цвет iphone 5c? я уверен, что каждому будет удобно загружать соответствующую цветовую схему пользовательского интерфейса в цвет устройства. </p><p>я подумываю о том, чтобы обернуть его в нечто вроде категории uidevice, которая вернет uicolor.</p><p><strong> обновление: </strong> @ coline и @ortwin gentz  указал на наличие частных вызовов метода экземпляра uidevice для него.</p><p><strong> обратите внимание, что в случае iphone 5c, что вы действительно ищете, это deviceenclosurecolor, так как devicecolor всегда будет возвращать # 3b3b3c, так как это передний цвет. </strong></p><p>подпись метода:</p><pre><code>-(id)\_deviceinfoforkey:(struct \_\_cfstring { }*)arg1 </code></pre><p>категория uidevice для этого:</p><pre><code>@interface uidevice (devicecolour) - (id)\_deviceinfoforkey:(struct \_\_cfstring { }*)arg1; - (nsstring*)devicecolourstring\_untilapplemakesitpublic; - (nsstring*)deviceenclosurecolour\_untilapplemakesitpublic; @end @implementation uidevice (devicecolour) - (nsstring*)devicecolourstring\_untilapplemakesitpublic { return [self \_deviceinfoforkey:@"devicecolor"]; } - (nsstring*)deviceenclosurecolour\_untilapplemakesitpublic { return [self \_deviceinfoforkey:@"deviceenclosurecolor"]; } @end </code></pre>

<p>существует частный api для получения как <code>devicecolor</code>, так и <code>deviceenclosurecolor</code>. в случае iphone 5c интересной частью является цвет корпуса (цвет устройства = цвет спереди всегда # 3b3b3c).</p><pre><code>uidevice *device = [uidevice currentdevice]; sel selector = nsselectorfromstring(@"deviceinfoforkey:"); if (![device respondstoselector:selector]) { selector = nsselectorfromstring(@"\_deviceinfoforkey:"); } if ([device respondstoselector:selector]) { nslog(@"devicecolor: %@ deviceenclosurecolor: %@", [device performselector:selector withobject:@"devicecolor"], [device performselector:selector withobject:@"deviceenclosurecolor"]); } </code></pre><p>я написал об этом в блоге и предоставил пример приложения:</p><p> <a href="http://www.futuretap.com/blog/device-colors/">http://www.futuretap.com/blog/device-colors/</a> </p><p><strong>предупреждение: как уже упоминалось, это частный api. не используйте это в сборках app store.</strong></p>

<p>цвет устройства (используется для?) должен быть закодирован в серийном номере устройства. у меня нет устройства для тестирования, пока оно официально не выпущено, но я думаю, что решение будет похоже на это:</p><blockquote> <p>типичный формат iphone sn выглядит следующим образом: aabccdddeef</p> <p>aa = идентификатор фабрики и машины<br> b = год производства (9 - это 2009/2019, 0 - это 2010/2020, 1 - это 2011 и т.д.)<br> cc = производство неделя (01 - 1-я неделя b, 11 - 11-я неделя b и т.д.)<br> ddd = уникальный идентификатор<br> ee = цвет (a4 = черный)<br> f = размер (s = 16 гб, t = 32 гб)</p> </blockquote><p><sup><sup><sup> <a href="https://stackoverflow.com/a/5466717/916299">[источник]</a> </sup></sup></sup></p><p>более подробная информация о старых методах <a href="http://www.pressbyte.com/640/decode-iphone-hardware-information-serial-number/">здесь</a> </p><hr><p>однако я хотел бы отметить, что я ожидаю, что не существует поддерживаемого метода получения серийного номера. предполагая, что вы хотите знать эту информацию только для того, чтобы вы могли настроить свой пользовательский интерфейс, я бы просто ввел опцию пользователя или попросил их выбрать цвет их устройства при первом запуске (или какой-то другой ранней точке приложения). пользовательская жизнь)</p>

<p>несколько человек в твиттере <a href="https://twitter.com/stroughtonsmith/status/379679342865166336">цитируют следующий метод</a> :</p><pre><code>[[uidevice currentdevice] \_deviceinfoforkey:@"devicecolor"] </code></pre><p>хотя я не подтвердил это сам.</p>

<p>это может помочь вам ...</p><pre><code>uidevice *device = [uidevice currentdevice]; sel selector = nsselectorfromstring([device.systemversion hasprefix:@"7"] ? @"\_deviceinfoforkey:" : @"deviceinfoforkey:"); if ([device respondstoselector:selector]) { nslog(@"devicecolor: %@ deviceenclosurecolor: %@", [device performselector:selector withobject:@"devicecolor"], [device performselector:selector withobject:@"deviceenclosurecolor"]); } </code></pre><p>ссылка: <a href="https://stackoverflow.com/questions/8463212/detecting-color-of-iphone-ipod-touch/19334257#19334257">определение цвета iphone/ipad/ipod touch?</a> </p>