Недавно у меня было немного кода, отлично работающего на симуляторе и испорченного на устройстве. Зачем? - Это очень просто, но я не могу объяснить объяснение.
Я провел небольшое тестирование, создав новое приложение на основе представления, добавил метку и выход для метки и написал этот код в viewDidLoad:
BOOL b;
if (b) {
label.text = @"Value = YES";
}
else {
label.text = @"Value = NO";
}
Интересно, что вот результаты:
Симулятор iOS (4.2): значение = НЕТ
Симулятор iOS (4.3): значение = НЕТ
iPod Touch 2G (4.2.1) Значение = ДА
iPhone 3G (4.2.1) ) Значение = ДА
Что это говорит? - Для меня это выглядит так, что на устройствах логическое значение по умолчанию - YES, а на симуляторе логическое значение по умолчанию - NO.
Может кто-нибудь уточнить, так ли это? Также, если бы кто-то мог объяснить это поведение, мне было бы очень интересно.
Я не заинтересован в решении проблемы, ясно, что это можно решить, установив желаемое значение по умолчанию (в моем случае NO
) вручную.
Спасибо.