我的应用程序在iOS 8上运行良好,但是当我试图在Xcode 7上构建它时,地图没有显示出来。我在模拟器和真正的设备上试过。
下面是一些代码。
- (void)viewDidLoad {
[super viewDidLoad];
NSString *url = [[NSUserDefaults standardUserDefaults]
stringForKey:@"tileOverlayURL"];
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:url];
overlay.canReplaceMapContent = YES;
[self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];
}
#pragma mark - MKMapViewDelegate
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView
rendererForOverlay:(id <MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKTileOverlay class]]) {
return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay];
}
return nil;
}
发布于 2015-10-08 19:38:22
我也有同样的问题。IOS 9默认不允许连接到非安全URL。我使用的地图服务器是不安全的,因此IOS 9阻止了我在MkTileOverlay中调用的代码与地图服务器对话的MkTileOverlay。
您可以告诉IOS 9允许访问这些非安全的服务器。您必须将NSAppTransportSecurity部分添加到IOS项目的info.plist文件中,并为与您交谈的每个非安全映射服务器指定一个NSExceptionDomain。下面是一个示例,展示了我使用的2台地图服务器。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>nationalmap.gov</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
<key>opencyclemap.org</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>发布于 2015-09-17 11:18:54
我在自定义覆盖层中加载瓷砖时也遇到了同样的问题。我的问题是,我使用的是"http“请求而不是"https”。带有"http“的请求在iOS9上被认为是不安全的,默认情况下会被阻塞。这可能是个可能的问题。
https://stackoverflow.com/questions/31901566
复制相似问题