我在iOS 8.x.x中的MKMapView中遇到了问题。应用程序在iOS 7.x.x中运行良好,但在iOS 8.x.x中运行不正常。在设备上,它只显示注释,但后面没有地图。
我试图强行重置我的设备,但没有运气。
我在info.plist中添加了这两个值,以及它是iOS 8及其后的要求
<key>NSLocationAlwaysUsageDescription</key>
<string>Location is required to find out where you are</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location is required to find out where you are</string>
并在我的Viewdidload中添加了这行代码。
// Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7.
if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
{
[self.locationManager requestWhenInUseAuthorization];
//[self.locationManager requestAlwaysAuthorization];
self.myMapView.showsUserLocation = YES;
}
通过在info.plist和上面的代码行中添加这两个值,我可以在用户位置的地图上显示用户的位置和注释,但是Map是空白。
与此帖类似: MKMapView showing blank screen in iOS 8
答案 0 :(得分:20)
IOS8.3上的SIM和设备都是一样的。 通过运行系统地图应用程序(它也显示空网格)一分钟解决,直到它下载地图。之后,我的MKMapView开始正常渲染。
答案 1 :(得分:3)
尝试添加委托方法:
- (void)mapViewWillStartLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error;
并检查解决方案为您的错误消息。
还检查this解决方案我没有摆脱研磨,但至少我摆脱了didFail错误。
但似乎是iOS8的问题,因为在iOS8.3上可以正常使用相同的代码。