NSThread работает на симуляторе, но не на устройстве - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть приложение, которое подключается к какому-либо серверу для получения данных. Ну, я использую NSThreads и, похоже, отлично работает в симуляторе. после установки приложения на устройстве iPhone оно перестает работать.

Я не знаю, является ли это общей проблемой. Если да, что может быть альтернативой NSThread?

ПРИМЕЧАНИЕ. Я пытался NSOperations, но все равно получаю ту же проблему.

1 Ответ

0 голосов
/ 07 сентября 2011

Если оба NSThread и NSOperation не работают, у вас есть более фундаментальная проблема с вашим кодом.Оба из них одинаково хорошо работают на устройстве и симуляторе (в противном случае они были бы немного бессмысленными).Я настоятельно рекомендую вам исследовать очевидную проблему более внимательно.Гораздо вероятнее, что у вас есть какое-то состояние гонки, когда срабатывает конкретное время, которое вы получаете на своем устройстве с текущей версией ОС, а симулятор с текущей версией SDK - нет.Наиболее распространенной ошибкой, допущенной на iOS в этой области, является, вероятно, неспособность заметить, что UIKit в основной части можно использовать только в главном потоке.

Но ответить на вопрос точно так, как было сказано: основные альтернативы для выполнения работыасинхронно:

Также обратите внимание, что NSURLConnection имеет встроенный асинхронный режим работы, который сообщает основному потоку, что означает, что вам фактически не нужно ничего делать для себя.Apple настоятельно рекомендует использовать это, а не создавать собственную систему, поскольку написано, что она гораздо более энергоэффективна и эффективна, чем решение NSThread.

...