Как исправить утечку SocketStream с типом сервиса, установленным на VoIP?

Xcode report SocketStream объект просачивается после закрытия потоков. Утечка надежно воспроизводится на iPhone, но не на симуляторе или Mac.

Потоки создаются с CFStreamCreatePairWithSocketToCFHost, затем используется, закрывается и освобождается, каждый раз оставляя другой SocketStream.

Я проверил сохранение истории в Инструментах и ​​обнаружил, что каждый раз, когда потоки чтения и записи закрываются, SocketStream сохраняет счетчик 2. (Я предполагаю, что эти два сохранения сделаны в _CTServerConnecionCreateWithIdentifier от CoreTelephony)

Глядя на то, как используются эти потоки, я заметил, что для свойства типа сетевой службы установлено значение VoIP (либо CFStreamNetworkServiceTypeVoIP или же NSStreamNetworkServiceTypeVoIP). Я закомментировал эти строки, и утечки исчезли.

Итак, как правильно закрыть потоки услуг VoIP? Может ли это быть как-то связано с устареванием VoIP?

0 ответов

Другие вопросы по тегам