Построение проблем для iPhone OS 3.1.2 и 2.2.1 - PullRequest
1 голос
/ 15 января 2010

Я пытаюсь запустить приложение на устройстве 2.2.1, несмотря на то, что оно построено на SDK 3.1.2.

В таблице ниже перечислены мои результаты

Deployment   |Base        |Device      |Result
Target       |SDK         |Version     |
-------------+------------+------------+-------
3.1.2         3.1.2        3.1.2        Runs OK
2.2.1         3.1.2        3.1.2        Runs OK
2.2.1         2.2.1        2.2.1        Runs OK
2.2.1         3.1.2        2.2.1        Builds OK, interrupt signal when run

Строка # 3 доказывает, что ни один из моих кодов несовместим между SDK. Я вытащил все, что могло бы быть слабосвязанным, чтобы попытаться найти корень проблемы.

Прерывание наступает быстро после запуска программы, но не сразу. И дело в том, что в коде никогда не было ничего общего с функциями 3.0

Строка, на которой он останавливается, представляет собой простую математическую операцию, включающую 4 числа с плавающей запятой (a-b) / (c / d), и, похоже, что-то не так с этим. (Это на C ++)

Что еще может вызвать сигнал прерывания при этих обстоятельствах?

Обновление:

Похоже, что точная точка, на которую он прерывает, - это бросить u64 на поплавок.

1 Ответ

0 голосов
/ 15 января 2010

В итоге произошло то, что когда вы запускаете это приложение в этой конфигурации, внезапно возникает проблема приведения u64 к float или double. Я думаю, код кастинга u64 изменился? Так что это не работает, только если вы используете версию ОС, которая не соответствует SDK.

В любом случае, обходной путь - привести u64 к unsigned int, а затем к float. Конечно, я могу сделать это только потому, что я нахожусь в ситуации, когда указанное число всегда может вписаться в обычный int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...