首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLLocationManager,MKReverseGeocoder,清理内存

CLLocationManager,MKReverseGeocoder,清理内存
EN

Stack Overflow用户
提问于 2011-06-06 05:07:33
回答 1查看 295关注 0票数 1

在更多的iPhone 3开发书中,在作者完成了获取更新的locationManager委托方法之后,他将其放在该方法的末尾:

代码语言:javascript
复制
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

    // some code here

    manager.delegate = nil;
    [manager stopUpdatingLocation];
    [manager autorelease];    
}

类似地,在MKReverseGeocoder委托方法中,当他完成任务时,他会这样做:

代码语言:javascript
复制
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {

    //some code here

    geocoder.delegate = nil;
    [geocoder autorelease];
}

为什么你需要这样做来清理内存呢?我认为规则是,如果你分配/输入它,你需要释放它。为什么他要将locationManager和Geo编码器添加到自动发布池中?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-12-13 23:30:12

这样做是为了避免调用委托方法。

代码语言:javascript
复制
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

代码语言:javascript
复制
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark

当您释放响应这些CLLocationManager/MKReverseGeocoder协议的对象时

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6247974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档