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