У меня есть метод объекта, который создает объекты, которые затем передаются к способу другого объекта в другом потоке, как это:объекты Autoreleasing, созданные в потоке и передается к другому в Objective-C
MyClass* myClass = [[MyClass alloc] init];
[anotherClass performSelectorOnMainThread:@selector(method) withObject:myClass waitUntilDone:NO];
в методе, я немедленно сохраняю объект, предполагая, что он будет каким-то образом выпущен создателем. Мой вопрос: как мне заставить MyClass правильно освободить этот объект? Правильно ли это?
Моим решением было освободить объект вручную в методе. Я все равно вижу, что анализатор утечек по-прежнему распознает это как утечку, и, похоже, это не то, что рекомендует Apple, так как владелец несет ответственность за выпуск объекта.
Можете ли вы объяснить мне правильный способ справиться с этой ситуацией? Благодаря!
Ой, извините, я забыл важный элемент: поток, который выполняет инструкцию, о которой я сообщил, не является потоком какао. Я создал его с помощью потоков POSIX. –
Нет никакой разницы между потоками какао и потоками POSIX. Но убедитесь, что вы создали пул автозапуска в начале потока. – Yuji
Я прочитал также необходимо создать хотя бы один NSThread, чтобы иметь возможность использовать NSAutoreleasePools. –