У меня есть собственный тайловый сервер для карт. Этот сервер доступен через HTTPS с самоподписанным сертификатом. Есть ли возможность использовать MKTileOverlay
static NSString * const template = @"https://tile.myserverwithselfsignedcertificate.org/{z}/{x}/{y}.png";
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
overlay.canReplaceMapContent = YES;
[self.mapView addOverlay:overlay
level:MKOverlayLevelAboveLabels];
с самоподписанным сертификатом. Я получаю в окне журнала XCode, к сожалению, просто сообщение об ошибке, что сертификат недействителен.
Для прямых запросов NSURLConnection я могу использовать решение, как описано, например. здесь: http://www.cocoanetics.com/2010/12/nsurlconnection-with-self-signed-certificates/
Но это не работает для моего настроенного класса MKTileOverlay.
Кто-нибудь знает, возможно ли это?
РЕДАКТИРОВАТЬ 21 августа 2015 г.
Я считаю, что мне нужно переопределить MKTileOverlay примерно так:
- (void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData *data, NSError *error))result
{
NSURLRequest *request = [NSURLRequest requestWithURL:[self URLForTilePath:path]
cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20];
connectionApi = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
- (void)connection:(NSURLConnection *)conn didReceiveData:(NSData *)data
{
[myData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)conn
{
// myData includes now the required tile,
// but how to pass it back to the result
// block of the loadTileAtPath method???
}
Кто-нибудь знает, как это решить?
https://
. - person Marcus Adams   schedule 20.08.2015