我有一个数据加载器将消息发送到其委托时,其完成iPhone目标C:我有解决的问题,但我不知道为什么它的工作
- (void) loadingMethod {
// Loading stuff...
[delegate LoaderDidFinish];
}
然后委托relases调用它的装载机,然后做一些东西。
- (void) LoaderDidFinish {
[Loader release];
// Do stuff
}
这导致了一个错误的acces错误。
我认为这是因为LoaderDidFinish
完成控制后返回到已发布的loadingMethod
。
但是什么suppried我是一个事实,即释放Loader
后来在方法解决了这一问题:
- (void) LoaderDidFinish {
// Do stuff
[Loader release]; // Now there is no bad access error!
}
有人能解释为什么这个工作?
不幸的是autorelease并没有缝合工作,我想是因为加载器本身使用异步调用。尽管看起来有点冒险,但我认为不适合添加'relaese延迟'解决方案。 – Robert 2010-06-11 12:26:49
如果autorelease不起作用,但最终会释放,你做错了什么。 – 2010-06-11 20:12:15