Intereting Posts
Создайте NSArray с определенным свойством Как проверить, содержит ли NSMutableArray объект, содержащий определенный текст? Проблема ландшафтной ориентации iOS для MonoGame Перейти к началу страницы ios Фильтрация массивов на основе значения свойства Сравнение iOS NSDate работает по-разному, когда настройки 24-часового времени в день переключаются между ON и OFF? Как отключить несколько пользовательских взаимодействий на экране в один и тот же момент времени в IOS продолжает расти запись в основной памяти Игровая площадка Xcode swift: WKWebView_scripting Не удалось получить расширение песочницы для пути Включить / отключить push-уведомление после завершения запуска или внутри нашего приложения Не удается найти супервизор при программном программировании ограничений? Добавление другого представления контроллера представления в качестве подзадачи Facebook iOS SDK не сохраняет файлы cookie для доступа Можно просмотреть и отредактировать Apple iOS Live Photos на компьютере с Windows, C # или другой ОС? меню переполнения на ios, похожее на android

CTCallCenter crash

Я разрабатываю приложение iPhone, которое должно синхронизироваться с статусами телефонных звонков. В настоящее время я воспроизвожу аудио и / или связь с внешним аксессуаром, поэтому мое приложение может работать в фоновом режиме. Поэтому, когда есть телефонный звонок, я показываю, что пользователь говорит, что происходит телефонный звонок. Я использую CTCallCenter (используя переменную экземпляра в приложении appDelegate), чтобы отвечать на статусы телефонных звонков, и я распределяю этот экземпляр каждый раз, когда я проверяю, есть ли телефонный звонок или нет. Bur при распределении этого экземпляра каждый раз, иногда я получаю странный сбой относительно класса CUTWeakReference. Я хочу знать, есть ли практика использования CTCallCenter, когда приложение находится в фоновом режиме или приостановлено, чтобы предотвратить этот сбой? благодаря

    Вопросы для решения проблемы.

    Существует ошибка iOS, которая заставляет экземпляры класса CTCallCenter иногда получать уведомления после того, как они были освобождены. Вместо того, чтобы создавать экземпляры, использовать и выпускать экземпляры, вы должны вместо этого сохранять и никогда не выпускать их для обхода ошибки.

    В основной очереди должен быть запущен [[CTCallCenter alloc] init] . Это поточно-безопасный ??? Лучше назовите его только на основной теме.

     static CTCallCenter *netInfo; static dispatch_once_t dispatchToken; if (!netInfo) { dispatch_once(&dispatchToken, ^{ netInfo = [[CTCallCenter alloc] init]; }); }