0

我正在使用 CLGeocoder,并且正在使用块作为完成处理程序。我不确定我创建的 CLGeocoder 实例的保留/释放周期。

这是基本代码:

CLGeocoder* geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:newLocation completionHandler:
    ^(NSArray* placemarks, NSError* error)
    {
        // process the placemarks...
        [geocoder autorelease];
    }
];

自动释放地理编码器作为块的最后一行是推荐的处理方式吗?任何建议表示赞赏!

4

1 回答 1

1

你可以直接释放它(不需要自动释放)自动释放是用于当你不确定何时需要释放一个对象时(例如在方法结束时返回一个对象或为了方便方法)

在这种情况下,您确定您已完成使用该对象,因此它可以被释放。当然,自动释放也可以,但在内存中停留的时间更长。

于 2012-04-19T22:03:18.973 回答