【发布时间】:2024-01-13 14:20:01
【问题描述】:
我需要一些关于我正在使用 MapKit 制作的应用程序的帮助
我正在为 didUpdateUserLocation 苦苦挣扎: - 它不断随机地使应用程序崩溃。当我注释掉所有代码时,它工作得很好,但这不是一个合适的情况。我一直在摆弄它,但仍然没有真正的成功。
这是我的代码
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
NSLog(@"update loc");
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 250.0, 250.0);//MKCoordinateRegionMake(userLocation.coordinate, mapView.region.span);
if (first) {
region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 250.0, 250.0);
first = false;
}
if (!CLLocationCoordinate2DIsValid(userLocation.coordinate)) {
//do nothing, invalid regions
NSLog(@"co-ord fail");
} else if (region.span.latitudeDelta <= 0.0 || region.span.longitudeDelta <= 0.0) {
NSLog(@"invalid reg");
} else {
[mapView setRegion:region animated:NO];
}
}
该应用永远不会遇到“co-ord fail”或“invalid reg”,所以我真的不知道问题出在哪里,因为我自己设置了这些值。
该问题通常发生在 Map 的 nib 关闭并释放视图时。
我看到了其他一些建议,但对他们的工作没有信心。理想情况下,我想使用 mapView.region.span 来保持缩放级别
非常感谢, 詹姆斯
【问题讨论】:
-
崩溃时的确切错误信息是什么?
-
抱歉没有看到这个——这里有点菜鸟。在调试时没有特定的错误代码,但在崩溃日志中,崩溃的解释是 [MapKit mapView:didUpdateUserLocation:]。我已经使用达里尔回答的指导解决了这个问题。感谢您的回复!