首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKMapViewDelegate方法的内存泄漏问题

MKMapViewDelegate方法的内存泄漏问题
EN

Stack Overflow用户
提问于 2011-07-27 08:57:10
回答 1查看 139关注 0票数 0

我的代码是:

代码语言:javascript
复制
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"Pin"];

if(pinView == nil)
{
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"];
    pinView.annotation = annotation;
    pinView.animatesDrop = YES;
    [pinView setCanShowCallout:YES];

    if([[(MapPin *)annotation title] isEqualToString:@"Starting Location"])
    {
        pinView.pinColor = MKPinAnnotationColorGreen;
        pinView.rightCalloutAccessoryView = nil;
    }
    else
    {
        pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinView.pinColor = MKPinAnnotationColorRed;
    }

}

return pinView;

当然,问题是我必须返回pinView,它是我分配的,需要在某个时候释放。但是,一旦我返回pinView,就不能释放它,因为方法调用终止了。我该如何解决这个问题呢?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-27 10:27:23

使用autorelease是解决此类问题的一种方法,不过,请注意您的对象将被放入哪个自动释放池中,以确保适当的寿命。=)

对于任何想弄明白这件事的人来说,都有非常有价值的文档链接:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html

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

https://stackoverflow.com/questions/6838343

复制
相关文章

相似问题

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