我有创建对象,其然后被传递到另一对象的方法在另一个线程,像这样的物体的方法,包括:自动释放物体
MyClass* myClass = [[MyClass alloc] init];
[anotherClass performSelectorOnMainThread:@selector(method) withObject:myClass waitUntilDone:NO];
在方法中,我立即保留该对象,假设它将以某种方式由创建者发布。我的问题是:我如何让MyClass正确释放该对象?这是正确的方法吗?
我的解决方案是在方法中手动释放对象。无论如何,我发现泄漏分析仪仍然认为这是泄漏,似乎不是Apple推荐的,因为所有者有责任释放该物体。
你能解释一下处理这种情况的正确方法吗?谢谢!
哎呀,对不起,我忘了一个重要的元素:执行我报告的指令的线程不是可可线程。我使用POSIX线程创建它。 – 2011-01-08 10:30:59
Cocoa线程和POSIX线程没有区别。但请确保您在线程的开头创建一个自动释放池。 – Yuji 2011-01-08 12:24:08
我读过它也有必要创建至少一个NSThread以便能够使用NSAutoreleasePools。 – 2011-01-08 14:13:18