Недавно у меня была похожая проблема с вами.
Во-первых, я надеюсь, что вы делаете alloc / init, а не просто alloc.
Во-вторых, вы освобождаете сеанс и устанавливаете ноль в обратном вызове accessoryDidDisconnect? У меня были некоторые проблемы, когда мешал старый сеанс.
В-третьих, мне повезло с небольшой задержкой, прежде чем снова инициализировать аксессуар.
Я установил настройки устройства в другую функцию и вызвал ее из init: и accessoryDidConnect:
Затем я поставил NSTimer для задержки функции (или даже вызова sleep () для проверки) на всякий случай - у меня, казалось, было намного меньше проблем после этого, чем раньше, поэтому, возможно, уведомление приходит до того, как устройство действительно готово к открытию сессии?
Было бы здорово проверить ваши обратные вызовы уведомлений!