Я выполняю многочисленные операции, такие как поиск из Интернета, импорт, файловые операции и т. Д. В фоновом потоке. Каждая операция вызывается с помощью NSInvocationOperation
. После завершения каждой операции операция фонового потока вызывает performSelectorOnMainThread:
. Я использую модель для фонового потока для вызова operationSucceeded
или operationFailed
в зависимости от успеха или неудачи фоновой операции.
Когда я вызываю operationFailed
, я хочу передать объект NSError
обратно в основной поток, чтобы поток мог предпринять любое соответствующее действие с пользовательским интерфейсом. Например, в случае сбоя я могу или не хочу отображать сообщение об ошибке для пользователя.
Вопрос: как я могу отправить NSError
обратно в основной поток, не сталкиваясь с проблемами управления памятью? Каждая операция, которая вызывается с помощью NSInvocationOperation
, имеет свой собственный локальный NSAutoreleasePool
в соответствии с требованиями Apple. Когда я возвращаю объект NSError
, используя performSelectorOnMainThread:withObject:error
, разве локальный NSAutoreleasePool
не освобождает объект NSError
?