У меня есть одноэлементный класс-оболочка под названием «Folio APIWrapperv2», который отвечает за обработку всех моих вызовов данных API в моем приложении для iPhone.
Этот класс реализует ASIHTTPRequest для получения JSON с моего сервера. Когда ASIHTTPRequest завершается, он вызывает requestFinished :. В этом методе у меня есть дополнительная обработка данных, которая может занять пару секунд. Это не главное, но оно немного замедляет приложение, так как это блокирующий вызов. Чтобы это исправить, я создаю новый поток, используя GCD. Однако при запуске этого потока я получаю следующую ошибку:
[FolioAPIWrapperv2 respondsToSelector:]: message sent to deallocated instance 0x245050
Эта функция вызывается в методе "handleBytesAvailable" ASIHTTPRequest в строке:
if ([[self delegate] respondsToSelector:[self didReceiveDataSelector]]) {
Я не уверен, что здесь происходит. FolioAPIWrapperv2 является одноэлементным классом, поэтому его никогда нельзя освобождать. Я пробовал искать в Интернете, чтобы увидеть, какие другие проблемы возникли у людей с потоками, и не смог найти подходящего решения. У кого-нибудь есть идеи?