2011-04-07 27 views
3

當我更改另一個位置的緯度和經度值時,我的應用程序自動關閉幫助?添加經緯度值時出現問題

if (1) 
{ 
    CLLocationCoordinate2D cordi; 
    cordi.latitude = 45.574779; 
    cordi.longitude = -122.685366; 

    MKReverseGeocoder *coder = [[MKReverseGeocoder alloc] initWithCoordinate:cordi]; 
    coder.delegate = self; 
    [coder start]; 
} 
else 
{ 
    [self performSelectorInBackground:@selector(showWeather:) withObject:@"97217"]; 
} 
+1

你在控制檯中的錯誤消息或堆棧跟蹤?查看Apple的示例應用程序[CurrentAddress](http://developer.apple.com/library/ios/#samplecode/CurrentAddress/Introduction/Intro.html),查看它們如何聲明,創建和使用MKReverseGeocoder。 – Anna 2011-04-07 18:38:53

+1

您是否爲reverseGeocoder:didFailWithError:和reverseGeocoder:didFindPlacemark定義了方法? – Twelve47 2011-04-07 19:16:26

回答

1

由於Twelve47說,你應該完全實現delegate,因爲這兩種方法都不是可選的。

這聽起來像你只執行的研製成功方法:

– reverseGeocoder:didFindPlacemark:

所以當你改變位置的某處僞善進行地理編碼,故障方法被調用這會導致錯誤。

添加以下代碼:

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error 
    NSLog(@"Geocoder failed with error: %@",error); 
}