Я пишу в xCode 4.2 с использованием последних SDK, но я хочу провести тестирование на старом устройстве iPhone 2G (3.1.3 iOS). Цель этого - получить более высокую метрику производительности. В конечном счете, я понимаю, что appStore может больше не принимать приложения 3.x. Но выполнение медленного теста, как это может помочь:
- подтянуть петли, чтобы ускорить процесс
- сделать код более эффективным путем определения хороших мест для многопоточности
- (, что наиболее важно ) сокращает время загрузки, например трюки Default.png и диалоги загрузки
Мой вопрос, я должен:
- Забудьте об этом, это слишком сложно со всеми проблемами кросс-совместимости между iOS 4.x и iOS 3.x. Лучше просто «масштабировать временные метки NSLog» на iPhone 3G (4.2 iOS) вместо iPhone 2G (3.1.3 iOS).
- Продолжайте, просто используйте обратно совместимый код и обходные пути.
- Учитывайте это только в том случае, если вы не планируете использовать: _ __ _ __ классов (что они из вашего опыта?)
Я какое-то время играл с этим: вот что я натолкнулся на это:
В xCode 4.2 вам необходимо добавить «armv6» во все статические библиотеки и проекты приложений, используя «+» в «Project-> Settings-> Architectures», убедитесь, что вы не удалили «$ (ARCHS_STANDARD_32_BIT»).
У меня есть определенный код времени выполнения, добавлены проверки:
NSDate *now = [NSDate date];
if ([now respondsToSelector:@selector(dateByAddingTimeInterval:)])
{
//iOS 4.0
}
else
{
//iOS 3.1.3
}
Может также делать флаги прекомпилятора:
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_1
#else
#endif
Также можно динамически проверять версию:
float version = [[UIDevice currentDevice].systemVersion floatValue];
if (version > 3.1.3)
{
//do stuff
}
Это много дополнительной работы. Кто-нибудь есть совет по этому поводу? Есть ли способ лучше? Есть ли список, аналогичный приведенному выше DO и DONT для этого? Что сработало для вас и сэкономило вам больше времени / денег?