NSStream заканчивается после блокировки телефона - PullRequest
1 голос
/ 01 марта 2012

Мое онлайн-приложение работает на iPhone-3GS iOS 4.3, используйте NSStream для связи с сервером.

Когда я сверну приложение, заблокирую телефон и перезапущу приложение, потоки закончатся.

Таким образом, мое приложение теряет связь с сервером.

Кто-нибудь знает, как сохранить соединение после блокировки телефона? Это особенность многозадачности iOS?

1 Ответ

6 голосов
/ 01 марта 2012

Это особенность iOS. Сетевые подключения фоновых приложений отключены. Вам необходимо запросить обработку «VoIP»: для этого вам нужно установить значение «voip» для ключа Info.plist UIBackgroundModes, а затем пометить ваш сокет как сокет VoIP, установив kCFStreamNetworkServiceType вашего сокета к kCFStreamNetworkServiceTypeVoIP с использованием CFReadStreamSetProperty .

См. Также Руководство по программированию приложения Apple iOS , раздел Советы по разработке приложения VoIP .

...