2012-04-19 63 views
0

我正在使用CLGeocoder,並將塊用作完成處理程序。我不確定我創建的CLGeocoder實例的保留/釋放週期。Objective-C:將塊用作完成處理程序

這裏的基本代碼:

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

是自動釋放的地理編碼器作爲塊的最後一行的推薦方式來處理呢?任何建議表示讚賞!

回答

1

您可以釋放它(不需要自動釋放)當您不確定何時需要釋放對象(例如在方法結束時返回對象或方便的方法)時,自動釋放是用於

在這種情況下,您確定您已完成使用該對象,以便它可以被釋放。當然,autorelease也可以工作,但在內存中的時間會更長。