iOS отличается выводом, работает ли он в симуляторе или на устройстве - PullRequest
0 голосов
/ 23 июня 2011

У меня опять супер странная проблема. Я получаю разные результаты независимо от того, запускаю ли я приложение на симуляторе или на iPhone.

См. Эти журналы консоли:

iPhone Первый запуск, первая ячейка карьеры нажала

2011-06-23 14:47:28.974 Acando[2033:307] 1 - loadView method running
2011-06-23 14:47:29.156 Acando[2033:307] 2 - viewDidLoad method running
2011-06-23 14:47:29.159 Acando[2033:307] 3 - viewWillAppear method running
[Switching to process 12803 thread 0x0]
[Switching to process 11523 thread 0x0]
2011-06-23 14:47:29.689 Acando[2033:307] 4 - viewDidAppear method running
2011-06-23 14:47:29.692 Acando[2033:307] View: UILabel, height: 21.000000
2011-06-23 14:47:29.695 Acando[2033:307] View: UIWebView, height: 400.000000
2011-06-23 14:47:29.851 Acando[2033:307] webViewDidFinishLoad method running
2011-06-23 14:47:29.855 Acando[2033:307] UIWebView dynamic height: 1150.000000
[Switching to process 12547 thread 0x0]

Симулятор Первый запуск, первая ячейка карьеры нажала

2011-06-23 14:46:26.405 Acando[92098:207] 1 - loadView method running
2011-06-23 14:46:26.421 Acando[92098:207] 2 - viewDidLoad method running
2011-06-23 14:46:26.422 Acando[92098:207] 3 - viewWillAppear method running
[Switching to process 92098 thread 0x2003]
[Switching to process 92098 thread 0x207]
2011-06-23 14:46:26.484 Acando[92098:207] webViewDidFinishLoad method running
2011-06-23 14:46:26.485 Acando[92098:207] UIWebView dynamic height: 1150.000000
[Switching to process 92098 thread 0x6703]
2011-06-23 14:46:26.781 Acando[92098:207] 4 - viewDidAppear method running
2011-06-23 14:46:26.782 Acando[92098:207] View: UILabel, height: 21.000000
2011-06-23 14:46:26.783 Acando[92098:207] View: UIWebView, height: 1150.000000

Похоже, что на iPhone загружается метод webViewDidFinishLoad после метода viewDidAppear.

Но на симуляторе webViewDidFinishLoad загружается до метода viewDidAppear.

Что дает?

РЕДАКТИРОВАТЬ: Что еще более странно, это то, что это происходит только тогда, когда я нажимаю на первую ячейку, которая загружает viewcontroller, который имеет мой UIScrollView и UIWebView. Все последующие ячейки, которые я нажимаю на метод webViewDidFinishLoad, загружаются перед методом viewDidAppear.

Есть какой-нибудь способ, которым я могу это исправить?

Ответы [ 3 ]

2 голосов
/ 23 июня 2011

Следует учитывать, что данные интернет-соединения на симуляторе намного лучше, чем на устройстве iPhone. Будьте осторожны при работе с синхронной и многопоточностью.

1 голос
/ 23 июня 2011

Ваши темы выполняются в разных порядках на телефоне против симулятора.Это не столько ошибка, сколько особенность многопоточного программирования.Вы получаете сбои в вашей программе или вам просто интересно узнать порядок выполнения?

0 голосов
/ 23 июня 2011

Симулятор выполняет скомпилированный код x86 в моделируемой среде. Там должны быть некоторые различия.

Вот почему вы всегда должны тестировать на реальном устройстве, а не полагаться исключительно на симулятор для ваших результатов тестирования.

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