Похоже, вы создали беспорядочную проблему, имея класс, который пытается делать слишком много вещей. Я бы предложил использовать один из следующих трех подходов:
1) Напишите два класса, один для обновлений и один для поиска. Каждый класс создает свой собственный частный объект NSURLConnection и выступает в качестве делегата для асинхронных уведомлений, полученных от NSURLConnection. Классы могут совместно использовать некоторый код синтаксического анализа или расширять базовый объект, в котором есть этот код синтаксического анализа. Но ключ в том, что код, вызывающий эти классы, создаст экземпляр одного из них, сделает вызов, а затем освободит его. Это обеспечит чистоту вашего кода и гарантирует, что уведомления о событиях не будут перепутаны.
2) Создайте отдельный класс, который, в зависимости от инициализации, выполняет либо публикацию, либо получение со своим собственным частным экземпляром NSURLConnection. Когда необходимо выполнить вызов, создать экземпляр класса, получить результаты и затем освободить класс.
3) Напишите ваши классы обработки соединений, чтобы они использовали синхронный метод NSURLConnection, и вызовите этот класс в фоновом потоке.
В любом случае, чистый код и четкая ориентация объекта предотвратят беспорядочные сценарии, подобные описываемому вами.