Если я вызываю метод в Objective-C с аргументом и освобождаю аргумент afterwords.
id argumentI = [Object new];
[ classA method1: argumentI ];
[ argumentI release ];
Тогда я знаю, что аргумент освобождается ПОСЛЕ того, как method1 закончен, поскольку строки обрабатываются линейно.НО, когда я вызываю метод в фоновом потоке:
[ NSThread detachNewThreadSelector:@selector(method1) toTarget:self withObject:argumentI ];
[ argumentI release ];
И тогда основной поток освобождает объект, В то время как фоновое задание использует аргумент для чего-то (С принятием, что retainCount будет 1 до того, какметод называется).Могу ли я получить сообщение об ошибке из-за использования зомби (использование объекта, который уже освобожден)?
Вопрос:
Сохраняют ли вызовы методов объект, которыйэто аргумент?Или мне нужно вызвать retain в начале метода, если это похоже на проблему выше?