MKMapView
というユーザーの場所のアドレスを取得しようとしています。MKReverseGeocoderがデリゲートを呼び出さない
は、ここに私のコードです:
CLLocationCoordinate2D userCoordinate = mapview.userLocation.location.coordinate;
MKReverseGeocoder *geocoder = [[[MKReverseGeocoder alloc] initWithCoordinate:userCoordinate] autorelease];
geocoder.delegate = self;
[geocoder start];
locationInstructions.text = @"Finding your location...";
NSLog(@"Started Geocoder");
ログが細かい呼び出されると、私はNSLog(%p,geocorder.delegate);
をログインしている場合、それはnil
を返しません。だから私の代議員に間違ったことはありません。これまでに呼び出されるデリゲートの
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error;
{
NSLog(@"Failed!");
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
NSString*str = [NSString stringWithFormat:@"%@,%@,%@,%@",[placemark thoroughfare],[placemark locality],[placemark administrativeArea],[placemark country]];
NSLog(@"%@",str);
}
なし:デリゲートメソッドになりまし
[OK]をクリックします。どうしてこれなの?私は何が欠けていますか?
これは例外を投げて、それを前もってリリースした場合にアプリケーションをクラッシュさせませんか? – Pripyat
'autorelease'を削除すると、そのトリックが実行されました。なぜこれが起こるのか分かりませんが、うまくいきました! :) – Pripyat
autoreleaseを取り除いても「動作する」が、今はメモリリークがあります。代わりに、Appleのサンプルアプリケーション[CurrentAddress](http://developer.apple.com/library/ios/#samplecode/CurrentAddress/Introduction/Intro.html)のパターンに従ってください。 – Anna