我正在学习使用 mkreversegeocoder 类,并使用以下三行代码使其工作并实现 didFindPlacemark 方法。
geoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:[u coordinate]];
[geoCoder setDelegate:self];
[geoCoder start];
以上工作正常,但是......在尝试通过考虑管理内存和资源来改进我的应用程序时,我正在尝试添加一个自动释放geoCoder分配,如下所示:
geoCoder = [[[MKReverseGeocoder alloc] initWithCoordinate:[u coordinate]] autorelease];
苹果在其文档中使用了上述模式,因此这似乎是正确的做法。但是,当我添加自动释放时,不会调用 didFindPlacemark 方法。好像自动释放会立即释放 geoCoder 对象。
geoCoder 对象被声明为 ivar,因此它应该可以工作。使用这种模式的苹果示例有效,所以问题一定出在我的实现上,但我无法弄清楚我哪里出错了。
我会很感激任何人对正在发生的事情以及我如何能够做到这一点的意见。
最好的祝福