В книге «Разработка для iPhone 3», после того, как автор завершил метод делегирования locationManager для получения обновлений, он добавляет в конец этого метода:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
// some code here
manager.delegate = nil;
[manager stopUpdatingLocation];
[manager autorelease];
}
И аналогично, в MKReverseGeocoder методах делегатов, когда он закончил, он делает это:
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {
//some code here
geocoder.delegate = nil;
[geocoder autorelease];
}
Зачем вам это нужно для очистки памяти? Я думал, что правило было, если вы размещаете / инициализируете его, вам нужно его освободить. Почему он добавляет locationManager и геокодер в пул автоматического выпуска? Спасибо.