添加纬度和经度值时出现问题

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
你在控制台中是否收到错误消息或堆栈跟踪?查看苹果的示例应用程序CurrentAddress,了解他们如何声明、创建和使用MKReverseGeocoder。 - user467105
1
你是否已经定义了reverseGeocoder:didFailWithError:和reverseGeocoder:didFindPlacemark:两个方法? - Twelve47
1个回答

1
如Twelve47所说,您应该完全实现delegate,因为两种方法都是不可选的。
听起来您只实现了成功的方法: -reverseGeocoder:didFindPlacemark: 因此,当您将位置更改为无法进行地理编码的位置时,将调用失败的方法,从而导致错误。
添加此代码:
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
   NSLog(@"Geocoder failed with error: %@",error);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接