MKMapView无法在iOS 8或更高版本中渲染

时间:2014-12-18 07:32:21

标签: ios8 mkmapview

我在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

Blank Map View with annotation

2 个答案:

答案 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上可以正常使用相同的代码。